javahttp源碼
⑴ 求一段java模擬Http請求的代碼(帶注釋)
用httpclient就行
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://www.google.com");
httpGet.addHeader("MyHeader", "MyValue");
try {
String body = httpClient.execute(httpGet, new ResponseHandler<String>() {
@Override
public String handleResponse(HttpResponse response) throws IOException {
Header firstHeader = response.getFirstHeader("MyHeader");
String headerValue = firstHeader.getValue();
return EntityUtils.toString(response.getEntity());
}
});
} catch (IOException e) {
e.printStackTrace();
}
⑵ 源碼看的很頭疼,java中的HttpURLConnection類中的,有高人嗎
建議使用httpclient框架,這個比HttpURLConnection好用多了,以下是請求示例:
1. GET 方式傳遞參數
//先將參數放入List,再對參數進行URL編碼
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "數據")); //增加參數1
params.add(new BasicNameValuePair("param2", "value2"));//增加參數2
String param = URLEncodedUtils.format(params, "UTF-8");//對參數編碼
String baseUrl = "伺服器介面完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//將URL與參數拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //發起GET請求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取伺服器響應內容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. POST方式 方式傳遞參數
//和GET方式一樣,先將參數放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加參數1
params.add(new BasicNameValuePair("param2", "第二個參數"));//增加參數2
try {
HttpPost postMethod = new HttpPost(baseUrl);//創建一個post請求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //執行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應內容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
⑶ java寫的發送http頭的程序
看得我很是糾結
你這是socket連接還是http連接呀?
建議使用httpClient
⑷ java http請求時怎麼返回錯誤頁面源碼 (例如返回404時的頁面源碼),我的程序遇到這種就報錯。
用getErrorStream();
Scanner s;
if (connection.getResponseCode() != 200) {
s = new Scanner(connection.getErrorStream());
} else {
s = new Scanner(connection.getInputStream());
}
⑸ 怎麼在電腦上運行Java源程序代碼
http://hi..com/%D1%EE%5F%C1%F5/blog/item/55d15c35a8b7ca87a71e122e.html
上面的網址是java掃雷的源代碼
要運行,首先要配置環境變數(方法可參考網上)
其次找到程序所在的盤符目錄,比如java掃雷程序,放在了
E:\Java掃雷中,那麼在DOS下就要到此目錄
然後依次輸入javac *.java(編譯)
java *(運行)即可