日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP请求范例

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP请求范例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.grefr.basemethod;
/*JAVA發送HTTP請求,返回HTTP響應內容,實例及應用 博客分類: JAVA實現
Java.netBeanJDKApache .
JDK 中提供了一些對無狀態協議請求(HTTP )的支持,下面我就將我所寫的一個小例子(組件)進行描述:

首先讓我們先構建一個請求類(HttpRequester )。

該類封裝了 JAVA 實現簡單請求的代碼,如下: */


//Java代碼
import java.io.BufferedReader;?
import java.io.IOException;?
import java.io.InputStream;?
import java.io.InputStreamReader;?
import java.net.HttpURLConnection;?
import java.net.URL;?
import java.nio.charset.Charset;?
import java.util.Map;?
import java.util.Vector;?
??
/**
* HTTP請求對象
*?
* @author YYmmiinngg
*/
public class HttpRequester {?
??? private String defaultContentEncoding;?
??
??? public HttpRequester() {?
??????? this.defaultContentEncoding = Charset. defaultCharset().name();?
??? }?
??
??? /**
???? * 發送GET請求
???? *?
???? * @param urlString
???? *??????????? URL地址
???? * @return 響應對象
???? * @throws IOException
???? */?
??? public HttpRespons sendGet(String urlString) throws IOException {?
??????? return this.send(urlString, "GET", null, null);?
??? }?
??
??? /**
???? * 發送GET請求
???? *?
???? * @param urlString
???? *??????????? URL地址
???? * @param params
???? *??????????? 參數集合
???? * @return 響應對象
???? * @throws IOException
???? */?
??? public HttpRespons sendGet(String urlString, Map<String, String> params)?
??????????? throws IOException {?
??????? return this.send(urlString, "GET", params, null);?
??? }?
??
??? /**
???? * 發送GET請求
???? *?
???? * @param urlString
???? *??????????? URL地址
???? * @param params
???? *??????????? 參數集合
???? * @param propertys
???? *??????????? 請求屬性
???? * @return 響應對象
???? * @throws IOException
???? */?
??? public HttpRespons sendGet(String urlString, Map<String, String> params,?
??????????? Map<String, String> propertys) throws IOException {?
??????? return this.send(urlString, "GET", params, propertys);?
??? }?
??
??? /**
???? * 發送POST請求
???? *?
???? * @param urlString
???? *??????????? URL地址
???? * @return 響應對象
???? * @throws IOException
???? */?
??? public HttpRespons sendPost(String urlString) throws IOException {?
??????? return this.send(urlString, "POST", null, null);?
??? }?
??
??? /**
???? * 發送POST請求
???? *?
???? * @param urlString
???? *??????????? URL地址
???? * @param params
???? *??????????? 參數集合
???? * @return 響應對象
???? * @throws IOException
???? */?
??? public HttpRespons sendPost(String urlString, Map<String, String> params)?
??????????? throws IOException {?
??????? return this.send(urlString, "POST", params, null);?
??? }?
??
??? /**
???? * 發送POST請求
???? *?
???? * @param urlString
???? *??????????? URL地址
???? * @param params
???? *??????????? 參數集合
???? * @param propertys
???? *??????????? 請求屬性
???? * @return 響應對象
???? * @throws IOException
???? */?
??? public HttpRespons sendPost(String urlString, Map<String, String> params,?
??????????? Map<String, String> propertys) throws IOException {?
??????? return this.send(urlString, "POST", params, propertys);?
??? }?
??
??? /**
???? * 發送HTTP請求
???? *?
???? * @param urlString
???? * @return 響映對象
???? * @throws IOException
???? */?
??? private HttpRespons send(String urlString, String method,?
??????????? Map<String, String> parameters, Map<String, String> propertys)?
??????????? throws IOException {?
??????? HttpURLConnection urlConnection = null;?
??
??????? if (method.equalsIgnoreCase("GET") && parameters != null) {?
??????????? StringBuffer param = new StringBuffer();?
??????????? int i = 0;?
??????????? for (String key : parameters.keySet()) {?
??????????????? if (i == 0)?
??????????????????? param.append( "?");?
??????????????? else
??????????????????? param.append( "&");?
??????????????? param.append(key).append("=" ).append(parameters.get(key));?
??????????????? i++;?
??????????? }?
??????????? urlString += param;?
??????? }?
??????? URL url = new URL(urlString);?
??????? urlConnection = (HttpURLConnection) url.openConnection();?
??
??????? urlConnection.setRequestMethod(method);?
??????? urlConnection.setDoOutput( true);?
??????? urlConnection.setDoInput( true);?
??????? urlConnection.setUseCaches( false);?
??
??????? if (propertys != null)?
??????????? for (String key : propertys.keySet()) {?
??????????????? urlConnection.addRequestProperty(key, propertys.get(key));?
??????????? }?
??
??????? if (method.equalsIgnoreCase("POST") && parameters != null) {?
??????????? StringBuffer param = new StringBuffer();?
??????????? for (String key : parameters.keySet()) {?
??????????????? param.append( "&");?
??????????????? param.append(key).append("=" ).append(parameters.get(key));?
??????????? }?
??????????? urlConnection.getOutputStream().write(param.toString().getBytes());?
??????????? urlConnection.getOutputStream().flush();?
??????????? urlConnection.getOutputStream().close();?
??????? }?
??
??????? return this.makeContent(urlString, urlConnection);?
??? }?
??
??? /**
???? * 得到響應對象
???? *?
???? * @param urlConnection
???? * @return 響應對象
???? * @throws IOException
???? */?
??? private HttpRespons makeContent(String urlString,?
??????????? HttpURLConnection urlConnection) throws IOException {?
??????? HttpRespons httpResponser = new HttpRespons();?
??????? try {?
??????????? InputStream in = urlConnection.getInputStream();?
??????????? BufferedReader bufferedReader = new BufferedReader(?
??????????????????? new InputStreamReader(in));?
??????????? httpResponser. contentCollection = new Vector<String>();?
??????????? StringBuffer temp = new StringBuffer();?
??????????? String line = bufferedReader.readLine();?
??????????? while (line != null) {?
??????????????? httpResponser. contentCollection.add(line);?
??????????????? temp.append(line).append( "\r\n");?
??????????????? line = bufferedReader.readLine();?
??????????? }?
??????????? bufferedReader.close();?
??
??????????? String ecod = urlConnection.getContentEncoding();?
??????????? if (ecod == null)?
??????????????? ecod = this.defaultContentEncoding;?
??
??????????? httpResponser. urlString = urlString;?
??
??????????? httpResponser. defaultPort = urlConnection.getURL().getDefaultPort();?
??????????? httpResponser. file = urlConnection.getURL().getFile();?
??????????? httpResponser. host = urlConnection.getURL().getHost();?
??????????? httpResponser. path = urlConnection.getURL().getPath();?
??????????? httpResponser. port = urlConnection.getURL().getPort();?
??????????? httpResponser. protocol = urlConnection.getURL().getProtocol();?
??????????? httpResponser. query = urlConnection.getURL().getQuery();?
??????????? httpResponser. ref = urlConnection.getURL().getRef();?
??????????? httpResponser. userInfo = urlConnection.getURL().getUserInfo();?
??
??????????? httpResponser. content = new String(temp.toString().getBytes(), ecod);?
??????????? httpResponser. contentEncoding = ecod;?
??????????? httpResponser. code = urlConnection.getResponseCode();?
??????????? httpResponser. message = urlConnection.getResponseMessage();?
??????????? httpResponser. contentType = urlConnection.getContentType();?
??????????? httpResponser. method = urlConnection.getRequestMethod();?
??????????? httpResponser. connectTimeout = urlConnection.getConnectTimeout();?
??????????? httpResponser. readTimeout = urlConnection.getReadTimeout();?
??
??????????? return httpResponser;?
??????? } catch (IOException e) {?
??????????? throw e;?
??????? } finally {?
??????????? if (urlConnection != null)?
??????????????? urlConnection.disconnect();?
??????? }?
??? }?
??
??? /**
???? * 默認的響應字符集
???? */?
??? public String getDefaultContentEncoding() {?
??????? return this.defaultContentEncoding;?
??? }?
??
??? /**
???? * 設置默認的響應字符集
???? */?
??? public void setDefaultContentEncoding(String defaultContentEncoding) {?
??????? this.defaultContentEncoding = defaultContentEncoding;?
??? }?
}





/*其次我們來看看響應對象(HttpRespons )。 響應對象其實只是一個數據BEAN ,由此來封裝請求響應的結果數據,如下:
java代碼? */
import java.util.Vector;?
??
/**
* 響應對象
*/
public class HttpRespons {?
??
??? String urlString;?
??
?? int defaultPort;?
?
?? String file;?
?
?? String host;?
?
?? String path;?
?
?? int port;?
?
?? String protocol;?
?
?? String query;?
?
?? String ref;?
?
?? String userInfo;?
?
?? String contentEncoding;?
?
?? String content;?
?
?? String contentType;?
?
?? int code;?
?
?? String message;?
?
?? String method;?
?
?? int connectTimeout;?
?
?? int readTimeout;?
?
?? Vector<String> contentCollection;?
?
?? public String getContent() {?
?????? return content;?
?? }?
?
?? public String getContentType() {?
?????? return contentType;?
?? }?
?
?? public int getCode() {?
?????? return code;?
?? }?
?
?? public String getMessage() {?
?????? return message;?
?? }?
?
?? public Vector<String> getContentCollection() {?
?????? return contentCollection;?
?? }?
?
?? public String getContentEncoding() {?
?????? return contentEncoding;?
?? }?
?
?? public String getMethod() {?
?????? return method;?
?? }?
?
?? public int getConnectTimeout() {?
?????? return connectTimeout;?
?? }?
?
?? public int getReadTimeout() {?
?????? return readTimeout;?
?? }?
?
?? public String getUrlString() {?
?????? return urlString;?
?? }?
?
?? public int getDefaultPort() {?
?????? return defaultPort;?
?? }?
?
?? public String getFile() {?
?????? return file;?
?? }?
?
?? public String getHost() {?
?????? return host;?
?? }?
?
?? public String getPath() {?
?????? return path;?
??? }?
??
??? public int getPort() {?
??????? return port;?
??? }?
??
??? public String getProtocol() {?
??????? return protocol;?
??? }?
??
??? public String getQuery() {?
??????? return query;?
??? }?
??
??? public String getRef() {?
??????? return ref;?
??? }?
??
??? public String getUserInfo() {?
??????? return userInfo;?
??? }?
??
}
import java.util.Vector;

*//**
* 響應對象
*//*
public class HttpRespons {

????? String urlString;

?????? int defaultPort;

????? String file;

????? String host;

????? String path;

?????? int port;

????? String protocol;

????? String query;

????? String ref;

????? String userInfo;

????? String contentEncoding;

????? String content;

????? String contentType;

?????? int code;

????? String message;

????? String method;

?????? int connectTimeout;

?????? int readTimeout;

????? Vector<String> contentCollection;

?????? public String getContent() {
???????????? return content;
????? }

?????? public String getContentType() {
???????????? return contentType;
????? }

?????? public int getCode() {
???????????? return code;
????? }

?????? public String getMessage() {
???????????? return message;
????? }

?????? public Vector<String> getContentCollection() {
???????????? return contentCollection;
????? }

?????? public String getContentEncoding() {
???????????? return contentEncoding;
????? }

?????? public String getMethod() {
???????????? return method;
????? }

?????? public int getConnectTimeout() {
???????????? return connectTimeout;
????? }

?????? public int getReadTimeout() {
???????????? return readTimeout;
????? }

?????? public String getUrlString() {
???????????? return urlString;
????? }

?????? public int getDefaultPort() {
???????????? return defaultPort;
????? }

?????? public String getFile() {
???????????? return file;
????? }

?????? public String getHost() {
???????????? return host;
????? }

?????? public String getPath() {
???????????? return path;
????? }

?????? public int getPort() {
???????????? return port;
????? }

?????? public String getProtocol() {
???????????? return protocol;
????? }

?????? public String getQuery() {
???????????? return query;
????? }

?????? public String getRef() {
???????????? return ref;
????? }

?????? public String getUserInfo() {
???????????? return userInfo;
????? }

}




最后,讓我們寫一個應用類,測試以上代碼是否正確

Java代碼
import com.yao.http.HttpRequester;?
import com.yao.http.HttpRespons;?
??
public class Test {?
??? public static void main(String[] args) {?
??????? try {?
??????????? HttpRequester request = new HttpRequester();?
??????????? HttpRespons hr = request.sendGet( "http://www.csdn.net");?
?
??????????? System. out.println(hr.getUrlString());?
??????????? System. out.println(hr.getProtocol());?
??????????? System. out.println(hr.getHost());?
??????????? System. out.println(hr.getPort());?
??????????? System. out.println(hr.getContentEncoding());?
??????????? System. out.println(hr.getMethod());?
?????????????
??????????? System. out.println(hr.getContent());?
??
??????? } catch (Exception e) {?
??????????? e.printStackTrace();?
??????? }?
??? }?
}?

轉載于:https://www.cnblogs.com/grefr/p/5046346.html

總結

以上是生活随笔為你收集整理的HTTP请求范例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。