【问题标题】:Android App and Http RequestsAndroid 应用和 Http 请求
【发布时间】:2013-11-19 21:42:13
【问题描述】:

我目前正在尝试从 android 应用程序向 google-app-engine 发送 http 请求,该请求应该由服务器接收,服务器将使用 URL 中传递的参数将新项目添加到数据存储区。

我写了这段代码:

private class AsyncConnection extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        try {
            // creating the url
            URL url = new URL(params[0]);

            // opening the connection
            URLConnection connection;
            connection = url.openConnection();

            // get data about the connection
            HttpURLConnection httpConnection = (HttpURLConnection) connection;
            int responseCode = httpConnection.getResponseCode();

            // connection was properly established
            if (responseCode == HttpURLConnection.HTTP_OK) {
                InputStream input = httpConnection.getInputStream();
                return input.toString();
            } else {
                Log.d("CONNECTION", "connection not HTTP_OK");
            }
        } catch (MalformedURLException e) {
            Log.d("SMARTGAN", "MalformedURLException" ,e);
        } catch (IOException e) {
            Log.d("SMARTGAN", "IOException" ,e);
        } catch (Exception e) {
            Log.d("SMARTGAN", "Exception" ,e);
        } finally { }

        return null;
    }
}

但是当我尝试执行它时,我在数据存储区中看不到任何新项目。 当我尝试使用它发送 URL 时,URL 本身和服务器上的代码都很好。我在日志中没有看到任何“连接不正常”消息的错误消息。

【问题讨论】:

  • 在不回答您的实际问题的情况下,请确保在使用完 Streams 后始终使用 .close() 关闭它!
  • 首先记录 responseCode 的值。它会告诉你这是什么类型的错误,因为这就是响应代码的用途。
  • 那么,这个input.toString() 可能不符合您的要求。另外,请发布您的日志,以防万一。
  • 关于close()和toString(),我写这段代码只是为了看看连接是否有效。关于记录 responseCode,我写道我没有看到任何 connection not ok 消息,因为 responseCode = HttpURLConnection.HTTP_OK

标签: android google-app-engine http


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多