如何使用httpClient将json文件包含在请求体中?

时间:2016-02-25 07:14:19

标签: json http http-post

如何使用httpClient将json文件包含在请求体中? 我的Json:

{
    "products": {
        "product": {
            "sku": "100",
            "varientsku": "0",
            "mrp": "5,300",
            "webprice": "5,220",
            ”inventory”: ”25”
        }
    }
}

我的代码:

public static void main(String args[])

{

uri=//url

JSONObject json=new JSONObject();

json.put("sku", "100");

json.put("mrp", "12121");

json.put("inventory", "2525");

JSONObject product=new JSONObject();

product.put("product", json);

JSONObject products=new JSONObject();

products.put("products", product);

HttpPost postRequest=new HttpPost(uri);

postRequest.addHeader("accept", "application/json");

postRequest.setHeader("ContentType", "application/json");

postRequest.setEntity(new StringEntity(products.toString(), "UTF-8"));

HttpResponse response=httpClient.execute(postRequest);

}

1 个答案:

答案 0 :(得分:0)

将文件读入内存并对其进行json_encode。

在javascript中:

 var json = JSON.stringify(file);

在c#中:

var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(file);

然后你拥有的是一个包含文件中所有信息的字符串。像传递任何字符串信息一样传递它。然后当你处理它(大概是在PHP?),json_decode它,

$jsonObject = json_encode($data['body']);

我希望这对您的问题有所帮助。如果没有,请提供更多信息,例如您使用的语言,以及您使用httpClient的目的。信息越多越好。

~~请求更新~~

对于Java,似乎人们建议使用Apache的HttpClient库:HERE,查看本教程的前几章,看看它是否是你想要的。您也可以在该网站上下载这些库。

对于简单请求,有些人会使用oracle的HttpURLconnection(找到HERE)示例:

URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

InputStream stream = connection.getInputStream(); //read the contents using an InputStreamReader

我发现了这些信息HERE