分享一下本人調試app連接電信平臺的新得;使用url在app裏面連接電信平臺第一次連接心態就崩了 ,主要是證書太不明白了
導出證書這裏是參考別人的文章
這裏新建一個config文件夾放如下文件:
直接上鑑權代碼
public static String request(Context context, String method, String url,
List<NameValuePair> param) throws Exception {
HttpResponse response;
String result_https="";
if (method.equals(REQUEST_TYPE_GET)){
String ps ="";
if (param != null) {
List<NameValuePair> param2 = new ArrayList<NameValuePair>();
for (int i = 0; i < param.size(); i++) {
if (i>0) ps+="&";
String key = param.get(i).getName();
String value =param.get(i)
.getValue();
ps+=key+"="+value;
}
ps = URLEncodedUtils.format(param2, HTTP.UTF_8);
// 通過url創建對象
if (url.indexOf("?") > 0) {
url += "&" + ps;
} else {
url += "?" + ps;
}
}
SSLSocketFactory ssl=DataManager.GETSSLinitHttpClientBook(context);
HttpClient httpClient = new DefaultHttpClient();
if (ssl != null) {
Scheme sch = new Scheme("https", ssl, 443);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
}
HttpGet request = new HttpGet(url);
// 發起請求,獲取迴應,自封裝接口,詳見附錄
response = httpClient.execute(request);
HttpEntity httpEntity = response.getEntity();
// 得到一些數據
// 通過EntityUtils並指定編碼方式取到返回的數據
StatusLine statusLine = response.getStatusLine();
statusLine.getProtocolVersion();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
result_https = (EntityUtils.toString(httpEntity, "utf-8"));
}else{
result_https=""+statusCode;
}
}else if(method.equals(REQUEST_TYPE_POST)){
SSLSocketFactory ssl=DataManager.GETSSLinitHttpClientBook(context);
HttpClient httpClient = new DefaultHttpClient();
if (ssl != null) {
Scheme sch = new Scheme("https", ssl, 443);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
}
HttpPost request = new HttpPost(url);
if (param != null) {
List<NameValuePair> param2 = new ArrayList<NameValuePair>();
for (int i = 0; i < param.size(); i++) {
String key = param.get(i).getName();
String value = param.get(i).getValue();
param2.add(new BasicNameValuePair(key, value));
}
request.setEntity(new UrlEncodedFormEntity(param2,
HTTP.UTF_8));
}
// request.setEntity(new UrlEncodedFormEntity(param));
// 發起請求,獲取迴應,自封裝接口,詳見附錄
response = httpClient.execute(request);
HttpEntity httpEntity = response.getEntity();
// 得到一些數據
// 通過EntityUtils並指定編碼方式取到返回的數據
StatusLine statusLine = response.getStatusLine();
statusLine.getProtocolVersion();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
result_https = (EntityUtils.toString(httpEntity, "utf-8"));
}else{
result_https=""+statusCode;
}
}else{
Log.i("method==", ".....");
}
return result_https;
}
}
如下是安卓調試信息:成功獲取到accessToken 界面我不會搞這裏就不獻醜了
歡迎來http://www.iotclub.net/forum.php 在論壇留言 我們直接發源碼和測試app
目前基本api接口都有用到 我們會在論壇裏面第一時間回覆您