Я пытаюсь использовать клиентскую библиотеку Twilio для приложения appengine. Он, похоже, не работает как есть, и в клиентской библиотеке должны быть внесены некоторые изменения. Я сделал следующие изменения, но не работает:Клиентская библиотека Twilio на Appengine
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: Схема «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);
}
}
имеет какой-либо один используется AppEngine для Java с Twilio? Я знаю, что это просто запрос RESTful с использованием XML или JSON с использованием базовой проверки подлинности. Я надеялся использовать клиентскую библиотеку и не тратить время на само кодирование запроса ... Любые идеи?