使用HttpURLConnection方式访问接口
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL; public class MobileCodeWebService { private static final String charSet = "utf-8"; /**
* 生成发送的XML
* @param mobileCode 手机号码
* @return XML String
*/
private String generateXmlString(String mobileCode){ StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\""+charSet+"\"?>");
sb.append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
sb.append("<soap:Body>");
sb.append("<getMobileCodeInfo xmlns=\"http://WebXml.com.cn/\">");
sb.append("<mobileCode>"+mobileCode+"</mobileCode>");
sb.append("<userID></userID>");
sb.append("</getMobileCodeInfo>");
sb.append("</soap:Body>");
sb.append("</soap:Envelope>"); return sb.toString();
} /**
* 请求WebService并获得返回数据
*/
public String rquestWS(String mobileCode){
//访问地址
String postUrl = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo";
String contentType = "text/xml; charset="+charSet; PrintWriter printWriter = null;
BufferedReader reader = null;
String result = "";
try { String requestXml = this.generateXmlString(mobileCode);
byte[] requestByte = requestXml.getBytes(); HttpURLConnection conn = (HttpURLConnection)new URL(postUrl).openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", contentType);
conn.setRequestProperty("Content-Length", requestByte.length+"");
conn.setRequestProperty("user-agent", "Mozilla/5.0");
conn.setReadTimeout(5000); //超时时间 conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true); printWriter = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), charSet));
printWriter.print(requestXml);
printWriter.flush(); reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while(reader.ready()){
result += reader.readLine();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{ try {
if(reader != null){
reader.close();
}
if(printWriter != null){
printWriter.close();
}
} catch (IOException e) {
e.printStackTrace();
} } return result;
} public static void main(String[] args) { MobileCodeWebService service = new MobileCodeWebService();
System.out.println(service.rquestWS("手机号码")); }
}
使用HttpURLConnection方式访问接口的更多相关文章
- PHP的fsockopen方式访问接口慢的原因与优化方案
在开发过程中常常遇到这样的需求,模拟浏览器访问某接口,并获取返回数据.我们比较常使用的方法是fsockopen与接口建立连接,然后发出指令,然后通过fgets接受返回值. 但是我们发现,通过PHP模拟 ...
- java通过HttpClient方式和HttpURLConnection方式调用WebService接口
1.引入maven依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifac ...
- 两种访问接口的方式(get和post)
跨机器.跨语言的远程访问形式一共有三种:scoket发送数据包.http发送请求.rmi远程连接: http发送请求方式:分为post和get两种方式 importjava.io.IOExceptio ...
- android post 方式 访问网络 实例
android post 方式 访问网络 实例 因为Android4.0之后对使用网络有特殊要求,已经无法再在主线程中访问网络了,必须使用多线程访问的模式 该实例需要在android配置文件中添加 网 ...
- 没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务
在windows2003下执行分布式事务的时候出现如下情况. 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 O ...
- Dojo Data Store——统一数据访问接口
原文地址:http://www.infoq.com/cn/articles/wq-dojo-data-store 无论在传统的桌面应用还是在主流的互联网应用中,数据始终占据着软件应用中的核心地位.当下 ...
- SharePoint—用REST方式访问列表
REST的定义与作用 在SharePoint 2010中,基本上有如下几种数据访问方式: 服务器端对象模型 LINQ to SharePoint Web Service 客户端对象模型 ADO.NET ...
- java servlet手机app访问接口(一)数据加密传输验证
前面几篇关于servlet的随笔,算是拉通了 servlet的简单使用流程,接下去的文章将主要围绕手机APP访问接口这块出发续写,md5加密传输--->短信验证--->手机推送---> ...
- httpclient 认证方式访问http api/resutful api并获取json结果
最近,因公司线上环境rabbitmq经常发生堆积严重的现象,于是跟运维组讨论,帮助开发个集中监控所有rabbitmq服务器运行情况的应用,需要通过java访问rabbitmq暴露的http api并接 ...
随机推荐
- 笔记||Python3进阶之读取和写入yaml配置文件
yaml是专门用来写配置文件的语言,简洁强大,远比JSON格式方便,yaml在python语言中有PyYAML安装包. - 首先需要pip安装:pip install pyyaml - yaml基本语 ...
- StringUtils工具类常用方法汇总:判空、转换、移除、替换、反转。
Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方法总 ...
- Day4 - C - 六度分离 HDU - 1869
1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人,即只用6个人 ...
- Java - Obejct
关于Object类(Java 10)中的方法,根据其所涉及的知识点,分为如下4个部分: 基础 clone: protected Object clone() throws CloneNotSuppor ...
- Python 绘图
python绘图库有很多,底层的就是matplotlib,另外还有基于matplotlib的更方便,代码可读性更强的库,比如seaborn.plotnine等.各个库之间的对比: https://ww ...
- Linux之关于用户的几个重要配置文件
. /etc/skel/ 用来存放新用户配置文件(环境变量)的目录,当创建新用户时,系统会把当下目录的所有文件拷贝一份到新用户家目录中,即:cp -a /etc/skel/* /home/ddu 2. ...
- Rolling Update【转】
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜 ...
- 第1节 IMPALA:8、shell交互窗口使用;9、外部和内部shell参数
impala当中的元数据的同步的问题impala当中创建的数据库表,直接就可以看得到,不用刷新hive当中创建的数据库表,需要刷新元数据才能够看得到 因为impala的catalog的服务,我们需要通 ...
- 从LG绝不放弃智能手机业务看后者到底有多重要?
近年来,全球手机市场放缓已经是不争的事实.与此同时,手机行业集中趋势明显,几家巨头掌握着大部分市场,占据着垄断的市场位置.但就是在这样的态势下,很多手机部门明显已经成为累赘的企业,却依然不想放弃智能手 ...
- Tomcat删除时问题——eclipse部署tomcat时弹出Resource'/Servers' does not exist
如果你删除一个项目的Servers文件,或者相应文件损坏等,会出现错误, Resource '/Servers' does not exist 那么就需要把它在控制台出的Servers下所部署的Tom ...