作者CMturtle (杰尼龟)
看板java
标题[问题] HTTP POST
时间Tue Jan 25 17:46:52 2011
我想写一个可以上传程式码到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)
1F:→ tkcn:是要送到 uva quick submit (未登入)那页吗? 01/25 20:50
2F:→ CMturtle:我是想传到pku online judge 上面耶>"< 01/25 20:58
3F:→ tkcn:我只是想确认送出之前需要先登入吗 :p 01/25 22:46
4F:推 a1234957:SERVLET JSP 01/26 08:49