Demo程序:
package org.acooly.onlycall.service;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.io.IOUtils;
public class ServiceClientDemo {
private static final String DEFAULT_ENCODING = "UTF-8";
private static final String SERVICE_ENDPOINT = "http://域名/service";
public static void main(String[] args) throws Exception {
ServiceClientDemo demo = new ServiceClientDemo();
demo.testCqyhtService();
}
public void testCqyhtService() {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("Action", "CALL");
parameters.put("PhoneNo", "一号通号码");
parameters.put("Credential", "XXXXXX");
parameters.put("CallerNo", "主叫");
parameters.put("CalledNos", "被叫");
String queryString = getCanonicalizedQueryString(parameters, false);
String requestUrl = SERVICE_ENDPOINT + "?" + queryString;
System.out.println("Request: \n" + requestUrl);
String response = httpSimpleRequest("GET", requestUrl, null);
System.out.println("Response Body: \n" + response);
}
protected String httpSimpleRequest(String method, String requestUrl, Map<String, String> headers) {
HttpURLConnection conn = null;
InputStream in = null;
String result = null;
try {
URL url = new URL(requestUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(method);
conn.setDoInput(true);
conn.setDoOutput(true);
if (headers != null) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
conn.addRequestProperty(entry.getKey(), URLEncoder.encode(entry.getValue(), "UTF-8"));
}
}
int status = conn.getResponseCode();
System.out.println("Response status: " + status);
in = conn.getErrorStream();
if (in != null) {
result = IOUtils.toString(in);
}
in = conn.getInputStream();
if (in != null) {
result = IOUtils.toString(in);
}
} catch (Exception e) {
System.err.println(e.getMessage());
} finally {
IOUtils.closeQuietly(in);
}
return result;
}
protected String getCanonicalizedQueryString(Map<String, String> parameters, boolean encoding) {
StringBuilder builder = new StringBuilder();
Iterator<Map.Entry<String, String>> pairs = parameters.entrySet().iterator();
while (pairs.hasNext()) {
Map.Entry<String, String> pair = pairs.next();
String key = pair.getKey();
String value = pair.getValue();
builder.append(encoding ? urlEncode(key, false) : key);
builder.append("=");
builder.append(encoding ? urlEncode(value, false) : value);
if (pairs.hasNext()) {
builder.append("&");
}
}
return builder.toString();
}
protected String urlEncode(String value, boolean path) {
try {
String encoded = URLEncoder.encode(value, DEFAULT_ENCODING).replace("+", "%20").replace("*", "%2A").replace("%7E", "~");
if (path) {
encoded = encoded.replace("%2F", "/");
}
return encoded;
} catch (UnsupportedEncodingException ex) {
throw new RuntimeException(ex);
}
}
}
运行结果:
Request:
http://域名/service?Action=CALL&CalledNos=被叫&Credential=XXXXXX&CallerNo=主叫&PhoneNo=一号通号码
Response status: 200
Response Body:
<?xml version="1.0" encoding="UTF-8"?>
<Result>
<Code>0001</Code>
<Message>一号通号码不合法或用户被禁用</Message>
</Result>
分享到:
相关推荐
接口实现客户端demo 详解地址:http://blog.csdn.net/zxw136511485/article/details/51580288
cas4.1.x 集成 mysql,ldap,redis(session和票据),写了简单的两个客户端 democas4.1.x 集成 mysql,ldap,redis(session和票据),写了简单的两个客户端 democas4.1.x 集成 mysql,ldap,redis(session和票据),写了简单...
hessian 服务器 客户端 demo
使用VS2015编译通过 程序启动命令行 --workmode 0-5 --netmode 0 --ip 127.0.0.1 --port 6000 在程序启动时候创建一个工作模式的代理来...支持阻塞式客户端,阻塞式服务器,使用IOCTL,Select,IOCP实现了非阻塞式服务器
简单的客户端socket通信
C# 一个简单的 Restful 服务端和 Restful 客户端 Demo
基于Http客户端服务器Demo,服务器是轻量级的HTTP框架,客户端有用到线程池哦,记得是跑在linux环境上的,打开压缩包,会有一个server,client文件夹,本来一个make就可以编译运行demo,但是代码是我的IP,所以亲爱的您...
WebServices服务端和客户端DEMO。服务端和客户端的相关DEMO
极光推送 java服务器demo、Android客户端demo极光推送 java服务器demo、Android客户端demo
c# wcf双工通信客户端demo,服务端在下面
delphi xe7 可用idFTP客户端demo源码
C++TCP协议的服务器与客户端demo
C++UDP服务器与客户端demo源码
linux 下 简易客户端+服务demo 实现数据原样的收发 单客户 单连接
zk两种客户端的实现demo。同时包含了说明文档作为zk项目的入门资料
QT5多线程TCP服务器和客户端demo
WebSocket 服务端与客户端 C# 源码,支持微信小程序 WS 协议通信。
github搬运的核心代码,本人进行了简单测试与使用,亲测可以用,封装的挺好的。服务器和客户端的好多接口都有,还有代理的设置。