[問題] HTTP POST
我想寫一個可以上傳程式碼到online judge的程式
我的想法是,先和伺服器連線後(用socket)
用post指令傳帳號密碼和程式碼上去
我剛把code改了一下,我發現我是要對action的網頁做post
所以現在可以成功登入了,但是卻無法上傳程式碼
他傳回來的訊息是,please login first
這要怎麼處理阿??
import java.net.*;
import java.io.*;
public class Address
{
public static void main(String argv[])
{
try
{
InetAddress address = InetAddress.getByName(argv[0]);
BufferedWriter wr;
BufferedReader rd;
try
{
Socket skt = new Socket(address,80);
wr = new BufferedWriter(new OutputStreamWriter(skt.getOutputStream()));
rd = new BufferedReader(new InputStreamReader(skt.getInputStream()));
String line;
String url = "/login";
String host = "poj.org";
String type = "application/x-www-form-urlencoded";
String content = "user_id1=&password1=";
wr.write("POST "+url+" HTTP/1.1\r\n");
wr.write("Host: "+host+"\r\n");
wr.write("Content-Type: "+type+"\r\n");
wr.write("Content-Length: "+content.length()+"\r\n");
wr.write("\r\n");
wr.write(content+"\r\n");
wr.flush();
url = "/submit";
content =
"problem_id=1000&language=1&source=1234564864fjefjfejkoqjkejl;jf";
wr.write("POST "+url+" HTTP/1.1\r\n");
wr.write("Host: "+host+"\r\n");
wr.write("Content-Type: "+type+"\r\n");
wr.write("Content-Length: "+content.length()+"\r\n");
wr.write("\r\n");
wr.write(content+"\r\n");
wr.flush();
while((line = rd.readLine())!=null)
System.out.println(line);
skt.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
}
}
※ 編輯: CMturtle 來自: 61.225.84.30 (01/25 20:39)
→
01/25 20:50, , 1F
01/25 20:50, 1F
→
01/25 20:58, , 2F
01/25 20:58, 2F
→
01/25 22:46, , 3F
01/25 22:46, 3F
推
01/26 08:49, , 4F
01/26 08:49, 4F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
1
4