如何在String中解析JsonObjects的JsonObject并使用urlconnection android发送post post请求?

时间:2016-12-28 06:09:28

标签: android json post httpurlconnection urlconnection

我有一个Web服务,我必须在Json中传递参数。但问题是jsonObject有一个带有jsonobject类型的键,而jsonobject有一个带有子类型的键。 这很令人困惑,但我可以用儿子对象向你展示我的最终结果。

{
    "Id": 1,
    "Company": "BMW",
    "Category": {
        "ID": 1,
        "Transmission": 1,
        "Fuel": 2,
        "Description": {
            "Price": 1200000,
            "Year": 2016
        }
    }
}

现在我想在URLconnection中发送它。我该怎么办?

我使用description,Category和final son创建3个Json对象,然后使用toString()将其转换为String。使用“类别”键在最终子中的类别和类别中的说明但是它不工作的服务器给出了错误。

我对android很新,对此并不太了解。任何建议都会有用。

已编辑我已尝试link,但仍未解决问题。

2 个答案:

答案 0 :(得分:0)

如果你想使用URLConnection .. 你可能想看到这个帖子

POST request send json data java HttpUrlConnection

答案 1 :(得分:0)

我的第一个建议是使用库进行http通信:

  1. 排球
  2. OkHttp
  3. 改造等
  4. 他们会为你处理json。

    如果您仍想使用该httpUrlConnection:

    URL url = new URL("http://yoururl.com");
    HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
    conn.setReadTimeout(10000);
    conn.setConnectTimeout(15000);
    conn.setRequestMethod("POST");
    conn.setDoInput(true);
    conn.setDoOutput(true);
    
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("firstParam", paramValue1));
    params.add(new BasicNameValuePair("secondParam", paramValue2));
    params.add(new BasicNameValuePair("thirdParam", paramValue3));
    
    conn.connect();
    

    这是你可以为它增加价值的方法。现在你可以添加json.toString()作为参数,并给它一个由服务器识别的正确密钥;