4

HttpPostを使用して、%(EX:abc%xyz)を含む文字列をWebサービスに送信する必要があります。

次のロジックを使用しましたが、(%)の代わりにIllegalCharacter例外が発生します。

**updatepeople.php?pilotid=1651&firstname=Nexus&lastname=Google&nickname=abc%xyz**

       final int TIMEOUT_MILLISEC = 20000;
      HttpParams httpParams = new BasicHttpParams();
      HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
      HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
      HttpConnectionParams.setTcpNoDelay(httpParams, true);
      HttpClient httpClient = new DefaultHttpClient(httpParams);

       URLEncoder.encode(url, "UTF-8");
       HttpPost httpPost = new HttpPost(url);
  ResponseHandler<String> resHandler = new BasicResponseHandler();
  page = httpClient.execute(httpPost, resHandler);
   return page;
4

1 に答える 1

2

クエリ文字列で値を渡すときにこのコードを試してください。代わりに、これをエンティティとして渡します。

これで、URLにはページリンクのみが含まれ、これにはパラメータが含まれず、末尾はupdatepeople.php

HttpPost httpPost = new HttpPost(url);

List<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("pilotid", "1651"));
param.add(new BasicNameValuePair("firstname", "Nexus"));
param.add(new BasicNameValuePair("lastname", "Google"));
param.add(new BasicNameValuePair("nickname", "abc%xyz"));

httpPost.setEntity(new Unew UrlEncodedFormEntity(param));

今それを実行し、あなたができるように続行します

于 2013-03-25T10:13:02.643 に答える