java – Appengine上的Twilio客户端库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Appengine上的Twilio客户端库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2952字,纯文字阅读大概需要5分钟。
内容图文
![java – Appengine上的Twilio客户端库](/upload/InfoBanner/zyjiaocheng/792/4303a3bcbaed48ebbcb456b13dbdd335.jpg)
我试图在appengine上使用Twilio的java客户端库.它似乎不按原样运行,并且需要对客户端lib进行一些更改.我做了以下更改,但不起作用:
public TwilioRestClient(String accountSid, String authToken, String endpoint) {
validateAccountSid(accountSid);
validateAuthToken(authToken);
this.accountSid = accountSid;
this.authToken = authToken;
if ((endpoint != null) && (!endpoint.equals(""))) {
this.endpoint = endpoint;
}
/* origial code
* ThreadSafeClientConnManager connMgr = new ThreadSafeClientConnManager();
* connMgr.setDefaultMaxPerRoute(10);
* this.httpclient = new DefaultHttpClient(connMgr);
*/
//my changes start HERE
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
BasicHttpParams params = new BasicHttpParams();
ThreadSafeClientConnManager connMgr = new ThreadSafeClientConnManager(params,schemeRegistry);
//my changes END HERE
this.httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter("http.protocol.version",
HttpVersion.HTTP_1_1);
httpclient.getParams().setParameter("http.socket.timeout",
new Integer(CONNECTION_TIMEOUT));
httpclient.getParams().setParameter("http.connection.timeout",
new Integer(CONNECTION_TIMEOUT));
httpclient.getParams().setParameter("http.protocol.content-charset",
"UTF-8");
this.authAccount = new Account(this);
this.authAccount.setSid(this.accountSid);
this.authAccount.setAuthToken(this.authToken);
}
这使它得到编译和运行,但是我得到了这个例外:
引起:org.apache.http.HttpException:Scheme’https’未注册.
在提出请求时.请求在此(未更改)代码中:
public TwilioRestResponse request(String path, String method,
Map<String, String> vars) throws TwilioRestException {
HttpUriRequest request = setupRequest(path, method, vars);
HttpResponse response;
try {
response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
Header[] contentTypeHeaders = response.getHeaders("Content-Type");
String responseBody = "";
if (entity != null) {
responseBody = EntityUtils.toString(entity);
}
StatusLine status = response.getStatusLine();
int statusCode = status.getStatusCode();
TwilioRestResponse restResponse = new TwilioRestResponse(request
.getURI().toString(), responseBody, statusCode);
// For now we only set the first content type seen
for (Header h : contentTypeHeaders) {
restResponse.setContentType(h.getValue());
break;
}
return restResponse;
} catch (ClientProtocolException e1) {
throw new RuntimeException(e1);
} catch (IOException e1) {
throw new RuntimeException(e1);
}
}
有没有人用twilio的java的appengine?我知道它只是一个使用基本身份验证的XML或JSON的RESTful请求.我希望使用客户端库而不是花时间自己编写请求编码…任何想法?
解决方法:
最新的Twilio Java客户端库依赖于与appengine不兼容的外部库(Apache HttpClient). Twilio的原始java客户端代码只使用了java.net.HttpURLConnection并且没有外部依赖项.
我已将这个旧的Twilio java客户端代码添加到twilio4j(有几个bug修复).我在生产中使用它.
TODO:应该为官方的twilio-java项目提供一个补丁,这个项目是appengine友好的.
内容总结
以上是互联网集市为您收集整理的java – Appengine上的Twilio客户端库全部内容,希望文章能够帮你解决java – Appengine上的Twilio客户端库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。