http post リクエストを PHP サービスに送信しようとしています。これは、いくつかのテストデータで入力がどのように見えるかの例です
PHP 連想配列に代わる Java の代替手段が HashMap であることは知っていますが、NameValuePairs でこれを実行できるのでしょうか? この入力をフォーマットし、投稿リクエストを介して PHP サービスを呼び出す最良の方法は何ですか?
http post リクエストを PHP サービスに送信しようとしています。これは、いくつかのテストデータで入力がどのように見えるかの例です
PHP 連想配列に代わる Java の代替手段が HashMap であることは知っていますが、NameValuePairs でこれを実行できるのでしょうか? この入力をフォーマットし、投稿リクエストを介して PHP サービスを呼び出す最良の方法は何ですか?
@Sash_KP の回答を拡張すると、次のように nameValuePairs を投稿することもできます。
params.add(new BasicNameValuePair("Company[name]", "My company"));
params.add(new BasicNameValuePair("User[name]", "My Name"));
はい、これはで行うことができますNameValuePair
。次のようなものを持つことができます
List<NameValuePair> params;
//and when making `HttpPost` you can do
HttpPost httpPost = new HttpPost("Yoururl");
httpPost.setEntity(new UrlEncodedFormEntity(params));
//and while building parameters you can do somethin like this
params.add(new BasicNameValuePair("name", "firemanavan"));
params.add(new BasicNameValuePair("cvr", "1245678"));
....
これは、使用できるきちんとした優れた解析方法です。
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
InputStream is = null;
String json = "";
JSONObject jObj = null;
// Making HTTP request
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
Log.e("JSON", json);
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
return jObj;
}
そして、あなたは単にそれを次のように使うことができます
getJSONFromUrl("YourUrl", params);
これは、 を使用してこれを実現する方法の基本的なアイデアにすぎNameValuePair
ません。希望どおりに実装するには、さらにいくつかの回避策が必要になりますが、これで基本的なアイデアが得られるはずです。これがお役に立てば幸いです。