首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有post请求和参数的HttpUrlConnection作为Json object android

带有post请求和参数的HttpUrlConnection作为Json object android
EN

Stack Overflow用户
提问于 2013-06-07 12:29:08
回答 1查看 15.7K关注 0票数 3

嗨,我正在开发一个小的安卓应用程序,其中我想使用json对象与参数的HttpUrlConnection post请求。但这对我来说不起作用,我是用以下方式做到的:

代码语言:javascript
复制
try 
{
    URL url;
    DataOutputStream printout;
    DataInputStream  input;
    url = new URL ("https://abc.com");
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setRequestMethod("POST");  
    urlConnection.setDoInput (true);
    urlConnection.setDoOutput (true);
    urlConnection.setUseCaches (false);

    urlConnection.setConnectTimeout(10000);  
    urlConnection.setReadTimeout(10000);

    urlConnection.setRequestProperty("Content-Type","application/json");   
    urlConnection.connect();  

    JSONObject jsonParam = new JSONObject();

      JSONArray arr = new JSONArray();
      arr.put("LNCf206KYa5b");
      arr.put("oWdC0hnm1jjJ");
      jsonParam.put("places", arr);
      jsonParam.put("action", "Do");

            printout = new DataOutputStream(urlConnection.getOutputStream ());
            printout.writeUTF(URLEncoder.encode(jsonParam.toString(),"UTF-8"));
            printout.flush ();
            printout.close ();

            int HttpResult =urlConnection.getResponseCode();  

        if(HttpResult ==HttpURLConnection.HTTP_OK){  
        BufferedReader br = new BufferedReader(new InputStreamReader(  
            urlConnection.getInputStream(),"utf-8"));  
        String line = null;  

           while ((line = br.readLine()) != null) {  
            sb.append(line + "\n");  
        }  
        br.close();  

           //System.out.println(""+sb.toString());  

        }else{  
             System.out.println(urlConnection.getResponseMessage());  
        }  
    } catch (MalformedURLException e) {  

        e.printStackTrace();  
    }  
    catch (IOException e) {  

        e.printStackTrace();  
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{  
        if(urlConnection!=null)  
           urlConnection.disconnect();  
    }  
}

它没有给出任何响应代码或任何输出。我是不是做错了什么。如何解决这个问题。需要帮助。谢谢你。

我收到以下系统错误

代码语言:javascript
复制
06-07 09:55:58.171: W/System.err(4624): java.io.IOException: Received authentication challenge is null
06-07 09:55:58.171: W/System.err(4624):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.processAuthHeader(HttpURLConnectionImpl.java:1153)
06-07 09:55:58.171: W/System.err(4624):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.processResponseHeaders(HttpURLConnectionImpl.java:1095)
06-07 09:55:58.171: W/System.err(4624):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1048)
06-07 09:55:58.171: W/System.err(4624):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:726)
06-07 09:55:58.179: W/System.err(4624):     at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:121)
06-07 09:55:58.179: W/System.err(4624):     at com.mobiotics.qcampaigns.data.operation.ProximityOperation.execute(ProximityOperation.java:187)
06-07 09:55:58.179: W/System.err(4624):     at com.foxykeep.datadroid.service.RequestService.onHandleIntent(RequestService.java:145)
06-07 09:55:58.179: W/System.err(4624):     at com.foxykeep.datadroid.service.MultiThreadedIntentService$IntentRunnable.run(MultiThreadedIntentService.java:170)
EN

回答 1

Stack Overflow用户

发布于 2015-06-11 03:56:26

我强烈推荐使用Unirest这是一个简单的库,用来发出http请求,它有一个非常容易使用的api,而且它不会让内存过载太多,下面是一个如何使用你的示例代码的例子。

代码语言:javascript
复制
Unirest.post("https://example.com")
.queryString("places", "['LNCf206KYa5b', 'oWdC0hnm1jjJ']")
.queryString("action", "Do")
.asJson()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16976240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档