這是我常用的來進行接口調用的方法,非常的好用,希望能給需要的朋友帶來便利。
// 調取接口發送數據
private void getData(final String url, final String id) {// 獲取數據,把線程寫入了其中
new Thread() {
public void run() {
Message msg = vipmyHandler.obtainMessage();
String type = "";
try {
urlclient = new UrLClient();
List<NameValuePair> content = new ArrayList<NameValuePair>();
content.add(new BasicNameValuePair("suggestcontent", editText.getText().toString()));
type = urlclient.postFormsendCookiesData(url, content, FanKuiActivity.this);
if(type.equals("success")){
msg.what=0;
}else{
msg.what=1;
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(FanKuiActivity.this, "參數傳遞錯誤",
Toast.LENGTH_SHORT).show();
System.out.println("*************************" + "參數傳遞錯誤"
+ "**********************************");
}
vipmyHandler.sendMessage(msg);
}
}.start();
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
vipmyHandler.removeCallbacksAndMessages(null);
super.onDestroy();
}
Handler vipmyHandler = new Handler() {
@SuppressLint("HandlerLeak")
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
String httpstr = urlclient.getInput();
if (httpstr == null || httpstr.equals("")) {
return;
}
error_PopupWindows = new error_PopupWindows(FanKuiActivity.this, titlebar, "反饋成功,謝謝您的意見!");
break;
case 1:
error_PopupWindows = new error_PopupWindows(FanKuiActivity.this, titlebar, "提交失敗");
break;
}
super.handleMessage(msg);
}
};
// post登錄連接
public String postFormsendCookiesData(String url,
List<NameValuePair> params, Context urlcontext) {
String isConnect = "";
// 第一步,創建HttpPost對象
HttpPost httpPost = new HttpPost(UrlVO.Host_Url + url);
HttpResponse httpResponse = null;
try {
// 設置httpPost請求參數
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
DefaultHttpClient httpclient = new DefaultHttpClient();
if (!UrlVO.getShareData("JSESSIONID", urlcontext).equals("")) {
httpPost.setHeader("Cookie",
UrlVO.getShareData("JSESSIONID", urlcontext));
}
// 請求超時
httpclient.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT, 20000);
// 讀取超時
httpclient.getParams().setParameter(
CoreConnectionPNames.SO_TIMEOUT, 20000);
httpResponse = httpclient.execute(httpPost);
System.out.println(httpResponse.getStatusLine().getStatusCode());
if (httpResponse.getStatusLine().getStatusCode() == 200) {
// 第三步,使用getEntity方法活得返回結果
String result = EntityUtils.toString(httpResponse.getEntity());
setInput(result);
System.out.println("result:" + result);
isConnect = "success";
} else {
setWrongcode(String.valueOf(httpResponse.getStatusLine()
.getStatusCode()), urlcontext);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
Toast.makeText(urlcontext, "讀取超時或連接錯誤", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(urlcontext, "網絡連接失敗", Toast.LENGTH_SHORT).show();
}
return isConnect;
}
主要的功能我都已經放在這裏了,只要進行簡單的調用就可以了