最初に、URL フィールドをベース URL に追加する必要があります。次に、必要に応じてオプションのフィールドを追加できます。次に、URLが処理後に取得されるHttpPostのエンティティとしてのデータ。
以下を試してください:
呼び出される親メソッド。
public void request(String baseUrl,List<NameValuePair> urlFields, List<NameValuePair> formData,List<NameValuePair> optionalData ){
// Append params to the URL
if (urlFields != null)
baseUrl = baseUrl + getUrlPathForGet(urlFields);
// adds Optional fields to the Url
if (optional != null)
baseUrl = baseUrl + "?" + URLEncodedUtils.format(optionalData, "utf-8");
postData(baseUrl,formData);
}
URLパラメーターをベースURLに追加します
private String getUrlPathForGet(List<NameValuePair> urlFields) {
String path = "";
if (urlFields != null) {
for (NameValuePair pair : urlFields) {
path = path + "/" + pair.getValue();
}
}
return path;
}
変更された URL を使用して、フォーム データをエンティティとして HttpPost オブジェクトに追加します。
public void postData(String baseUrl,List<NameValuePair> formData) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
// pass the url as parameter and create HttpPost object.
HttpPost post = new HttpPost(baseUrl);
// Add header information for your request - no need to create
// BasicNameValuePair() and Arraylist.
post.setHeader("Authorization", "Bearer " + token);
post.setHeader("Content-Type", "application/json");
post.setHeader("Cache-Control", "no-cache");
try {
// pass the content as follows:
post.setEntity(new UrlEncodedFormEntity(formData,
HTTP.UTF_8));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(post);
// TODO: Process your response as you would like.
} catch (IOException e) {
// TODO Auto-generated catch block
}
}