`
summer_021
  • 浏览: 57935 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

后端发HTTP请求

 
阅读更多
package com.m4g.bns.common.util.sms;

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
 */

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;

	}

}

package com.m4g.bns.common.util.sms;

import java.util.Vector;

/**
 * http 返回对象  
 * @author icafebar
 *
 */
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;

	}

}
package com.m4g.bns.common.util.sms;

public class Test {

	public static void main(String[] args) {

		try {//13761638660 如  wangji 88888
			//http://www.chinaydsw.cn/smsjk/sendsms.asp?username=wangji&password=888888&mobile=13636574166&message=aaa&type=103
			HttpRequester request = new HttpRequester();
			HttpRespons hr = request.sendGet("http://www.chinaydsw.cn/smsjk/sendsms.asp?username=wangxin&password=886688&mobile=13636574166&message=aaa&type=103");
//			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();
		}

	}

}
分享到:
评论

相关推荐

    前端 如何把请求发到 后端 的 Controller

    前端通过发送HTTP请求到后端服务器,后端接收到请求后,根据请求的内容进行相应的处理,并将结果通过HTTP响应返回给前端。这一过程中涉及的关键组件包括: - **前端**:负责发起HTTP请求。 - **后端**:接收HTTP...

    前端后端+跨域请求+java/js

    前端与后端通过API(应用程序编程接口)进行通信,例如RESTful API,前端发送HTTP请求到后端服务器,获取或提交数据。 跨域请求是由于浏览器的同源策略(Same-Origin Policy)所引起的。同源策略限制了网页只能访问...

    Unity中和后端进项Http通信的插件

    Unity中和后端进项Http通信的插件,简单易用

    levenshtein_distance:一个由React构建的简单网页,它向后端服务器发出HTTP请求,该服务器计算两个字符串之间的“距离”

    评估:Levenshtein距离目标是使用React构建一个网页,该网页向后端服务器发出HTTP请求,该后端服务器计算两个字符串之间的“距离”。 该网页是一个简单的表单,具有两个输入字段和一个“计算”操作按钮,用于向后端...

    后端接口调试软件

    调试工具通常具有发送HTTP请求、查看响应数据、设置断点、模拟不同环境条件等功能,帮助开发者高效地定位问题。 其中,RESTful风格的接口测试请求是现代Web服务的主流设计模式。REST(Representational State ...

    Android跨域请求获取Java后端数据,登录界面例子

    跨域请求是指浏览器安全策略的一种限制,即一个源(Origin)的文档或脚本不能发起对另一个源的HTTP请求。但Android应用不受此限制,因此可以直接向其他域名发送网络请求。在这个案例中,Android应用作为客户端,Java...

    某网络课程讲解proxy,实现多次后端请求

    2. `proxy.html`:这个文件可能是课程中关于Proxy实际应用的一个示例,它可能包含了一个配置了Proxy的对象,演示了如何拦截和处理HTTP请求。 3. `server.js`:这很可能是服务器端的脚本,用于模拟或处理后端请求。...

    测试后端请求注入.docx

    测试后端请求注入是网络安全测试中的一个重要环节,主要目的是检测应用程序是否存在漏洞,这些漏洞可能导致攻击者能够操纵后端系统的行为。下面将详细解释这个过程及其相关的知识点。 首先,我们需要理解什么是后端...

    后端接口文档例子 word

    * 请求地址:http://localhost:8889/store-info/info * 请求方式:POST * 请求参数:storeId、merCode等 六、门店信息查询请求的返回结果 在上面的接口文档中,我们可以看到门店信息查询请求的返回结果。这些结果...

    AJAX+echarts+springboot实现前端向后端请求数据

    在本项目中,AJAX用于前端向后端发起HTTP请求,获取所需的数据。通常,我们会使用`XMLHttpRequest`对象或者更现代的`fetch` API来实现AJAX请求。 **ECharts** 是由百度开源的一个强大的数据可视化库,它支持丰富的...

    ueditor出现后端配置问题

    ueditor 后端配置问题解决方案 ueditor 是一个功能强大且流行的富文本编辑器,但是在实际应用中,ueditor 的前端配置问题经常会让开发者感到头疼。今天,我们将讨论如何解决 ueditor 的后端配置问题,让开发者更...

    基于http协议 图片上传的前端后端实现

    C#是ASP.NET的主要编程语言,用于编写服务器端代码,处理前端的HTTP请求,接收图片数据并保存到服务器。 6. **图片上传接口**:在后端,开发者会定义一个特定的API接口,用于接收前端发送的图片数据。这个接口通常...

    servlet+vue后端代码

    在这样的应用中,Servlet通常作为后端处理逻辑,负责与数据库交互,处理HTTP请求并返回相应的数据。Vue.js则用于前端界面的动态渲染,提供用户交互体验。 【描述】提到的功能是实现前端的登录功能,这意味着用户...

    浏览器插件拦截前端请求路径到后端

    在本场景中,我们讨论的是一种特殊的插件,它的功能是拦截前端发送的请求,并将其路由到后端服务器。这样的插件对于开发者、测试人员以及网络分析者来说尤其有用,因为它允许他们监测、修改或控制应用程序与服务器...

    一个可以用来测试后端返回数据的java工具

    总的来说,这个Java工具为后端开发提供了便利,通过源码,开发者可以学习到如何在Java中构建HTTP请求,处理响应数据,以及如何编写可复用的测试代码。这不仅有助于个人技能提升,也有助于团队协作和项目的高效开发。

    Java后端jodd.http.HttpRequest请求第三方接口代码

    利用jodd.http.HttpRequest,参数为map转json字符串,请求头为map的请求方式,获取第三方接口返回的数据,内负有jodd三件套jar包和fastjson等jar,直接引入代码即可使用

    java后端小实例

    - Servlet是Java后端处理HTTP请求的主要组件,它可以接收、响应来自客户端的请求,执行服务器端的逻辑,并返回响应。 4. **JSP (JavaServer Pages)**: - JSP是一种动态网页技术,允许将HTML代码与Java代码混合...

    使用freeMarker模板和Spring boot后端API接口实现查询用户列表的功能。

    在开发Web应用时,我们经常需要将数据动态地展示在前端页面上,这通常涉及到后端与前端的交互。在本项目中,我们将利用...这一过程涉及到后端数据查询、HTTP请求处理、模板引擎解析等多个环节,是Web开发中的常见实践。

    Go Web后端基础功能

    例如,Gin框架通过`gin.Default()`创建一个默认的路由器,可以使用`router.GET()`、`router.POST()`等方法定义HTTP请求路由。 二、HTTP服务器与路由 Go标准库中的"net/http"包提供了创建HTTP服务器的基本功能。通过...

    excel导入导出,包括纯前端解析,后端解析导入导出方式

    当用户请求导出数据时,前端可以向后端发送请求,包含需要导出的数据或者查询条件。后端接收到请求后,根据这些信息生成Excel文件,可以使用上述提到的库来完成。生成的Excel文件可以暂时保存在服务器,然后通过HTTP...

Global site tag (gtag.js) - Google Analytics