【问题标题】:Send data to server and handle response - Android将数据发送到服务器并处理响应 - Android
【发布时间】:2014-02-26 18:05:07
【问题描述】:

我正在尝试将数据发布到this 网络服务,但我似乎无法做到这一点!所以我试图将 json 发布到服务器,但我不知道该怎么做。我需要发送这个示例 json 以获得 json 响应:

内容类型:应用程序/json HTTPMethod:POST HTTPBody: { “CouponVerificationCode”: “594952223490”, “ApiKey”: “zFyWQDYUKXQQpvG86snPD1OSslr7Q6DGEGbQ1f7P2YeTxB56y”, “标记”: “_ 2_jx1YFvTZGGLNtJBoDW3gDZmNNAGpTWzT7dC6GrNAIkhhX9PWv75b776gq1ZO_2_SxMJjq8_2_kaDMyxX59HczOyaw ==”} P>

但我没有得到 json 响应,而是得到了 html 响应。 有人可以帮我解决这个问题吗?

这是我用来与服务器通信的代码:

public static String makeRequest(String path) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpPost httpost = new HttpPost(path);
        JSONObject holder = new JSONObject();
        // holder.accumulate(name, value)


        String test = "{\"ApiKey\":\"somekey\","
                + "\"OperativeSystem\":\"0\","
                + "\"AppVersion\":\"1\","
                + "\"WebServiceVersion\":\"1\"}";
        StringEntity se = new StringEntity(test);
        Log.v("--", test);
        httpost.setEntity(se);
        httpost.setHeader("Accept", "application/json");
        httpost.setHeader("Content-type", "application/json");

        ResponseHandler responseHandler = new BasicResponseHandler();
        String response = httpclient.execute(httpost, responseHandler);
        // HttpEntity entity = response.getEntity();
        Log.v("--", response);
        return response;
    }

【问题讨论】:

  • 需要解析responce转换成字符串
  • @geekCode 响应是 html 而不是 json
  • 你现在得到的答案是什么..??
  • @DarkoPetkovski - 您需要确认以下组合 url 、请求类型、请求内容类型。如果其中一个不正确,您将无法正确访问网络服务。
  • 而且也没有发布数据...

标签: android json web-services android-json android-webservice


【解决方案1】:

尝试使用 httpGet 代替 httpPost。这是我的工作代码:

            HttpClient httpclient = new DefaultHttpClient();

            // make GET request to the given URL
            HttpGet httpGet =new HttpGet(url);
            String User =  context.getString(R.string.json_uname);
            String Password =  context.getString(R.string.json_pwd);
            httpGet.setHeader("Authorization", "Basic "+ new String(Base64.encode((User +":"+ Password).getBytes(),Base64.NO_WRAP )));

            HttpResponse httpResponse = httpclient.execute(httpGet);

            // receive response as inputStream
            inputStream = httpResponse.getEntity().getContent();

            // convert inputstream to string
            if(inputStream != null)
            {
                //convertInputStreamToString(inputStream);
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                String json = reader.readLine();
                JSONTokener tokener = new JSONTokener(json);
                 finalResult = new JSONArray(tokener);
            }
            else
                 finalResult =null;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2015-12-29
    相关资源
    最近更新 更多