今天工作中聯調外部的一個介面用post方式傳輸,我按照文檔封裝參數成Jason字元串傳入,但是對方一直接受參數為空,折騰了半天也沒找到問題。很苦惱,檢查代碼都沒有錯誤,可是為什麼對方接受參數為空呢?然後找對方的技術人員聯調,看看是怎麼回事,也折騰了半天最後發現對方是用NameValuePair方式傳 ...
今天工作中聯調外部的一個介面用post方式傳輸,我按照文檔封裝參數成Jason字元串傳入,但是對方一直接受參數為空,折騰了半天也沒找到問題。很苦惱,檢查代碼都沒有錯誤,可是為什麼對方接受參數為空呢?然後找對方的技術人員聯調,看看是怎麼回事,也折騰了半天最後發現對方是用NameValuePair方式傳參數。雖然這個方式已經過時了,但是在這裡記錄下,以備以後出現類似的方式傳參數。
1 /** 2 /** 3 * 定義了一個list,該list的數據類型是NameValuePair(簡單名稱值對節點類型), 4 * 這個代碼用於Java像url發送Post請求。在發送post請求時用該list來存放參數。 5 */ 6 7 List<NameValuePair> urlParameters = new ArrayList<>(); 8 urlParameters.add(new BasicNameValuePair("token", token)); 9 urlParameters.add(new BasicNameValuePair("city", city)); 10 urlParameters.add(new BasicNameValuePair("timestamp", timestamp)); 11 urlParameters.add(new BasicNameValuePair("sign", sign)); 12 ... 13 14 HttpPost post = new HttpPost("http://****:8047/v4.0/quoted");//建立HttpPost對象 15 post.setEntity(new UrlEncodedFormEntity(urlParameters, HTTP.UTF_8));//設置編碼 16 HttpResponse response=new DefaultHttpClient().execute(post);//發送Post,並返回一個HttpResponse對象 17 String content = EntityUtils.toString(response.getEntity(), "UTF-8");