UDS访问外网示例
UDS运行于AbleCloud云端的内部环境中,可以使用AbleCloud提供的正向代理服务(由类ACHttpClient提供访问接口)访问外部网络。
GET
@Test
public void testGet() {
ACHttpClient client = null;
try {
//获取访问外网的ACHttpClient客户端
client = ac.getHttpClient("http://apis.baidu.com/apistore/aqiservice/aqi?city=%E5%8C%97%E4%BA%AC");
//默认为GET方法
client.setRequestMethod("GET");
//默认超时时间为5000
client.setConnectTime(5000);
//设置访问外网头域
client.setHeader("apikey", "caf46348383a17f6070e0bda0e361a28");
//连接url
client.connect();
//AbleCloud签名认证失败
if (client.getResponseCode() == HttpURLConnection.HTTP_OK) {
assertEquals(client.getResponseMessage(), "OK");
//通过getData()或getInputStream()获取response,不能同时一起调用
}
client.disconnect();
} catch (IOException e) {
if (client != null)
client.disconnect();
fail(e.toString());
}
}
POST
@Test
public void testPost() {
ACHttpClient client = null;
try {
String body = "fromdevice=pc&clientip=10.10.10.0&detecttype=LocateRecognize&languagetype=CHN_ENG&imagetype=1&image=/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDABMNDxEPDBMREBEWFRMXHTAfHRsbHTsqLSMwRj5KSUU+RENNV29eTVJpU0NEYYRiaXN3fX59S12Jkoh5kW96fXj/2wBDARUWFh0ZHTkfHzl4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHj/wAARCAAfACEDAREAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQDBQb/xAAjEAACAgICAgEFAAAAAAAAAAABAgADBBESIRMxBSIyQXGB/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/APawEBAQEBAgy8i8ZTVV3UY6V1eU2XoWDDZB19S646Gz39w9fkKsW1r8Wm2yo1PYis1be0JG9H9QNYCAgc35Cl3yuVuJZl0cB41rZQa32dt2y6OuOiOxo61vsLcVblxaVyXD3hFFjL6La7I/sDWAgICAgICB/9k=";
//获取访问外网的ACHttpClient客户端
client = ac.getHttpClient("http://apis.baidu.com/apistore/idlocr/ocr");
//默认为GET方法
client.setRequestMethod("POST");
//默认超时时间为5000
client.setConnectTime(5000);
//设置访问外网头域
client.setHeader("Content-Type", "application/x-www-form-urlencoded");
client.setHeader("apikey", "caf46348383a17f6070e0bda0e361a28");
//连接url
client.connect();
//设置访问外网消息体
client.setEntity(body.getBytes("UTF-8"));
//获取服务器返回的数据
if (client.getResponseCode() == HttpURLConnection.HTTP_OK) {
assertEquals(client.getResponseMessage(), "OK");
//通过getData()或getInputStream()获取response,不能同时一起调用
}
client.disconnect();
} catch (IOException e) {
if (client != null)
client.disconnect();
e.printStackTrace();
}
}