Aujourd'hui, lors du débogage conjoint, une interface externe a été transmise en mode post. J'ai encapsulé les paramètres sous forme de chaînes Jason et les ai transmis conformément à la documentation, mais l'autre partie a continué à accepter les paramètres comme vides. et je n'ai pas trouvé le problème. Je suis très affligé. Il n'y a aucune erreur lors de la vérification du code, mais pourquoi l'autre partie accepte-t-elle des paramètres vides ? Ensuite, j'ai contacté le personnel technique de l'autre partie pour un débogage conjoint afin de voir ce qui se passait. Après avoir longtemps lutté, j'ai finalement découvert que l'autre partie utilisait la méthode NameValuePair pour transmettre les paramètres. Bien que cette méthode soit obsolète, elle est enregistrée ici au cas où une méthode similaire de transmission des paramètres apparaîtrait à l'avenir.
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");
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!