虽然我用的是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();
}
}

解决方案 »

  1.   

    关键是你运行了这一句: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(); 

      

  2.   

    厉害,一直觉得有这个问题,现在明白了.SetRequestMethod("GET")为啥不生效.
      

  3.   

    new_bird_0001是高手,今天弄java的http也出现跟楼主一样的问题,呵呵。