怎么模拟GET请求

eimhee 2008-12-14 08:49:53
虽然我用的是GET请求, httpurlconnection.setRequestMethod("GET");
但程序运行出来的是POST请求, 怎么改呢

package com.javaeye;

import java.net.HttpURLConnection;
import java.net.URL;

public class PostDemo {
static URL url = null;
static HttpURLConnection httpurlconnection = null;

public static void doPost() {
try {
url = new URL("http://www.XXXX.com/blogs/list");

httpurlconnection = (HttpURLConnection) url.openConnection();
httpurlconnection.setDoOutput(true);
httpurlconnection.setRequestMethod("GET");
// httpurlconnection.getOutputStream().write(getFileString().getBytes());

httpurlconnection.setRequestProperty("Cookie", "");
httpurlconnection.setRequestProperty("Connection", "Keep-Alive");
httpurlconnection.setRequestProperty("Referer", "http://extjs2.javaeye.com/");
httpurlconnection.setRequestProperty("Host", "www.javaeye.com");
httpurlconnection.getOutputStream().flush();
httpurlconnection.getOutputStream().close();
int code = httpurlconnection.getResponseCode();
System.out.println(httpurlconnection.getContentEncoding());
System.out.println(httpurlconnection.getContent());
//System.out.println(httpurlconnection.getOutputStream());
System.out.println("code " + code);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (httpurlconnection != null)
httpurlconnection.disconnect();
}

}

public static void main(String[] args) {
doPost();
}
}
...全文
3241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xc6080 2010-12-02
  • 打赏
  • 举报
回复
这里谢谢解答者了,真是不错。
numbzwz 2010-08-17
  • 打赏
  • 举报
回复
想知道到底咋回事
naihetian0 2010-08-11
  • 打赏
  • 举报
回复
恩 学习
tyzy_douglas 2010-07-12
  • 打赏
  • 举报
回复
俺要看看,呵呵
cfqtree 2009-11-25
  • 打赏
  • 举报
回复
晕,怎么看不到
joene 2009-09-01
  • 打赏
  • 举报
回复
new_bird_0001是高手,今天弄java的http也出现跟楼主一样的问题,呵呵。
llp20_2000 2009-01-20
  • 打赏
  • 举报
回复
厉害,一直觉得有这个问题,现在明白了.SetRequestMethod("GET")为啥不生效.
eimhee 2008-12-14
  • 打赏
  • 举报
回复
楼上高手, 弄明白是怎么回事了
qqlpp 2008-12-14
  • 打赏
  • 举报
回复
ding
new_bird_0001 2008-12-14
  • 打赏
  • 举报
回复
关键是你运行了这一句:httpurlconnection.setDoOutput(true); 就把请求改变为post请求了,请求头的输出并不需要通过httpurlconnection的输出流,只要设置就行,httpurlconnection会在你需要得到服务器响应的时候使用socket连接web服务器,将请求头输出到web服务器,所以这样写就可以了:
public static void doPost() {
try {
url = new URL("http://www.XXXX.com/blogs/list");

httpurlconnection = (HttpURLConnection) url.openConnection();
//httpurlconnection.setDoOutput(true); 这一句不要
//httpurlconnection.setRequestMethod("GET"); 这一句不要,缺省就是get
// httpurlconnection.getOutputStream().write(getFileString().getBytes());

httpurlconnection.setRequestProperty("Cookie", "");
httpurlconnection.setRequestProperty("Connection", "Keep-Alive");
httpurlconnection.setRequestProperty("Referer", "http://extjs2.javaeye.com/");
httpurlconnection.setRequestProperty("Host", "www.javaeye.com");
//httpurlconnection.getOutputStream().flush(); 这一句不要
//httpurlconnection.getOutputStream().close(); 这一句不要

int code = httpurlconnection.getResponseCode();
System.out.println(httpurlconnection.getContentEncoding());
System.out.println(httpurlconnection.getContent());
//System.out.println(httpurlconnection.getOutputStream());
System.out.println("code " + code);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (httpurlconnection != null)
httpurlconnection.disconnect();
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧