如何从Android应用程序中发送Web请求?

时间:2012-03-23 04:55:02

标签: java android http get

请原谅我对这个主题缺乏了解,但我对网络,PHP,网络请求等方面的知识很少。基本上,我想将一个字符串发送到网站,以便使用$_GET变量进行记录。如何从应用程序内部使用此方法发送字符串?

(我再也不能自己回答6个小时,但是如果我可以,这就是它的样子,当然答案中的代码。只是不想从原来拿走问题。)

最后,代码found here起作用了。 应用程序向Web服务器发送请求,然后将$ _GET变量中的字符串附加到日志文件中!花了几个小时才搞清楚。 :升

2 个答案:

答案 0 :(得分:5)

您可以使用Apache Commons HttpClient库发出HTTP请求。

HTTP请求URI由协议方案,主机名,可选端口,资源路径,可选查询和可选片段组成。

HttpGet httpget = new HttpGet(
     "http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq=");

查询字符串也可以从各个参数生成:

List<NameValuePair> qparams = new ArrayList<NameValuePair>();
qparams.add(new BasicNameValuePair("q", "httpclient"));
qparams.add(new BasicNameValuePair("btnG", "Google Search"));
qparams.add(new BasicNameValuePair("aq", "f"));
qparams.add(new BasicNameValuePair("oq", null));
URI uri = URIUtils.createURI("http", "www.google.com", -1, "/search", 
    URLEncodedUtils.format(qparams, "UTF-8"), null);
HttpGet httpget = new HttpGet(uri);
System.out.println(httpget.getURI());

答案 1 :(得分:0)

wanstein是对的,但现在不推荐使用 URIUtils.createURI (4.2.1),因此最好使用URIBuilder:

URI uri = new URIBuilder()
                .setFragment("http")
                .setHost(HOST)
                .setPath(path)
                .setQuery(URLEncodedUtils.format(qparams, "UTF-8"))
                .build();