2012-03-23 57 views
0

请原谅我对这个主题缺乏了解,但是如果有任何有关网络,PHP,Web请求等方面的知识,我几乎没有什么知识。基本上,我想发送一个字符串到网站使用$_GET变量进行日志记录。如何从应用程序内部使用此方法发送字符串? (我不能自己回答6个小时,但如果我可以,这是它的样子,当然在回答中的代码。只是不想从原始问题。)如何从Android应用内发送网络请求?

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

回答

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()); 
+0

但我如何获得应用程序实际发送请求到网站使用该链接? – tehtros 2012-03-23 05:05:42

+0

你可以使用HttpClient的实现来执行它,例如:'new DefaultHttpClient()。execute(httpget);'see [here](http://hc.apache.org/httpcomponents-client-ga/tutorial/html/ fundamentals.html) – s106mo 2012-07-09 18:04:36

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(); 
+0

是不是'http'的uri的片段,但它的方案? – oldergod 2013-11-05 05:07:05