博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http接口调用
阅读量:4324 次
发布时间:2019-06-06

本文共 7098 字,大约阅读时间需要 23 分钟。

import org.testng.annotations.Test;
public class HttpTest {
String creatOrderUrl="http://xxx.xxx.net/scriptParams/runScripts?ids=2303";
@Test  //可以直接运行了,注意调用http接口,都不能继承别的接口(例如hsf), public void testCrestOrder() {
System.out.println("url=="+creatOrderUrl);// httpRequest(creatOrderUrl); //System.out.println("url2=="+httpRequest(creatOrderUrl)); }
/**get请求*/ public static String httpRequest(String req_url) {
StringBuffer buffer = new StringBuffer(); try {
URL url = new URL(req_url); HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); httpUrlConn.setDoOutput(false); httpUrlConn.setDoInput(true); httpUrlConn.setUseCaches(false); httpUrlConn.setRequestMethod("GET"); httpUrlConn.connect(); // 将返回的输入流转换成字符串 InputStream inputStream = httpUrlConn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) {
buffer.append(str); } bufferedReader.close(); inputStreamReader.close(); // 释放资源 inputStream.close(); inputStream = null; httpUrlConn.disconnect(); } catch (Exception e) {
System.out.println(e.getStackTrace()); } return buffer.toString(); }
/**POST 请求  *  */ /**  * 向指定 URL 发送POST方法的请求  *  * @param url  *            发送请求的 URL  * @param param  *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。  * @param isproxy  *               是否使用代理模式  * @return 所代表远程资源的响应结果  */ public static String sendPost(String url, String param,boolean isproxy) {
OutputStreamWriter out = null; BufferedReader in = null; String result = ""; try {
URL realUrl = new URL(url); HttpURLConnection conn = null; if(isproxy){//使用代理模式 @SuppressWarnings("static-access") Proxy proxy = new Proxy(Proxy.Type.DIRECT.HTTP, new InetSocketAddress(proxyHost, proxyPort)); conn = (HttpURLConnection) realUrl.openConnection(proxy); }else{
conn = (HttpURLConnection) realUrl.openConnection(); } // 打开和URL之间的连接 // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); // POST方法 // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.connect(); // 获取URLConnection对象对应的输出流 out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); // 发送请求参数 out.write(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) {
result += line; } } catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{
try{
if(out!=null){
out.close(); } if(in!=null){
in.close(); } } catch(IOException ex){
ex.printStackTrace(); } } return result; } /** * 发送Http post请求 * * @param xmlInfo * json转化成的字符串 * @param URL * 请求url * @return 返回信息 */ public static String doHttpPost(String xmlInfo, String URL) {
System.out.println("发起的数据:" + xmlInfo); byte[] xmlData = xmlInfo.getBytes(); InputStream instr = null; java.io.ByteArrayOutputStream out = null; try {
URL url = new URL(URL); URLConnection urlCon = url.openConnection(); urlCon.setDoOutput(true); urlCon.setDoInput(true); urlCon.setUseCaches(false); urlCon.setRequestProperty("content-Type", "application/json"); urlCon.setRequestProperty("charset", "utf-8"); urlCon.setRequestProperty("Content-length", String.valueOf(xmlData.length)); System.out.println(String.valueOf(xmlData.length)); DataOutputStream printout = new DataOutputStream( urlCon.getOutputStream()); printout.write(xmlData); printout.flush(); printout.close(); instr = urlCon.getInputStream(); byte[] bis = IOUtils.toByteArray(instr); String ResponseString = new String(bis, "UTF-8"); if ((ResponseString == null) || ("".equals(ResponseString.trim()))) {
System.out.println("返回空"); } System.out.println("返回数据为:" + ResponseString); return ResponseString; } catch (Exception e) {
e.printStackTrace(); return "0"; } finally {
try {
out.close(); instr.close(); } catch (Exception ex) {
return "0"; } } } 方法二: /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPostNew(String url, String param) {
PrintWriter out = null; BufferedReader in = null; String result = ""; try {
URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) {
result += line; } } catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{
try{
if(out!=null){
out.close(); } if(in!=null){
in.close(); } } catch(IOException ex){
ex.printStackTrace(); } } return result; } } 注意事项:如果调用post接口,返回报错405(连接被拒绝),把post改成GET即可,原因是后台要求是GET请求,发送post请求肯定会被拒绝。

转载于:https://www.cnblogs.com/pinganjiankang/p/6401045.html

你可能感兴趣的文章
git - 如何从项目中删除git跟踪
查看>>
MacBook Air密码忘了,苹果电脑密码忘了怎么办
查看>>
PHP二维数组排序
查看>>
.Net Core WebApi返回的json数据,自定义日期格式
查看>>
C语言运算符表
查看>>
网络调试 adb connect
查看>>
ormlite 文档
查看>>
修改root远程ssh登录权限
查看>>
保存cookies
查看>>
iOS酷炫动画效果合集
查看>>
[CSS] Scale on Hover with Transition
查看>>
状压DP(挑战程序设计竞赛)
查看>>
POJ 2386
查看>>
腾讯云“动态加速”与“CDN”的区别——浅谈对“动态加速”的理解(可能有误)...
查看>>
Spring源码学习笔记(5)
查看>>
Objective-C 日记⑧ 对象初始化
查看>>
mybatis中#{}与${}的区别
查看>>
RTP/RTSP/RTCP的区别和应用
查看>>
Adaboost算法简介
查看>>
在【此电脑】隐藏【设备和驱动器】中不需要的图标
查看>>