今天工作中聯調外部的一個接口用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");
以上是NameValuePair方式傳送參數實例教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!