Android HttpPost表單訪問接口

這是我常用的來進行接口調用的方法,非常的好用,希望能給需要的朋友帶來便利。

// 調取接口發送數據
			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;
 }
主要的功能我都已經放在這裏了,只要進行簡單的調用就可以了


發佈了31 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章