【问题标题】:Android: Using HttpGet to send a URLAndroid:使用 HttpGet 发送 URL
【发布时间】:2011-06-14 14:56:44
【问题描述】:

我正在尝试将URL 发送到我的服务器,该服务器使用来自edittext 字段的值。目前它继续在按钮点击时强制关闭。这就是我所拥有的:

Button testbtn = (Button) findViewById(R.id.Testbtn);
testbtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        HttpGet method = new HttpGet("http://mysite.com/test.php?first=<>&last=<>&address=<>&phone=<>&zip=<>&email=<>");
        HttpClient client = new DefaultHttpClient();
        try {
            client.execute(method);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
});

我还没有将 edittext 值放在 URL 的 中,但我认为这不会导致任何问题。为什么不发送网址?

我不希望它打开浏览器或类似的东西,而是在后台发送 URL,然后我会有一个意图将它们返回到之前的屏幕。

【问题讨论】:

  • 你试过像http://www.google.com这样的工作网站来测试吗?
  • 我刚刚用你下面提供的代码示例进行了尝试,但它强制关闭了。

标签: android url http-get


【解决方案1】:

目前你没有发送任何东西。

HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/");

    try {
        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

        HttpEntity ht = response.getEntity();

            BufferedHttpEntity buf = new BufferedHttpEntity(ht);

            InputStream is = buf.getContent();

            BufferedReader r = new BufferedReader(new InputStreamReader(is));

            StringBuilder total = new StringBuilder();
            String line;
            while ((line = r.readLine()) != null) {
                total.append(line);
            }

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

希望这会有所帮助!

更新

HttpPost 更改为 HttpGet 都可以;)

【讨论】:

  • 我把它放进去,但它又被强制关闭了! :( ,我尝试了 HttpPost 和 HttpGet。知道我还有什么可能做错吗?
  • 您是否在AndroidManifest.xml 中声明了&lt;uses-permission android:name="android.permission.INTERNET"&gt;&lt;/uses-permission&gt;
  • 作为一个健全性检查,我也放入了一个测试吐司,以确保不是其他东西,它有效。
【解决方案2】:

client 为空。你必须初始化它。

【讨论】:

  • 我将它初始化为:HttpClient client = new DefaultHttpClient();但它仍然崩溃
  • 你能提供来自 LogCat 的堆栈跟踪吗?
猜你喜欢
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多