簡體   English   中英

如何從Android應用程序內部發送網絡請求?

[英]How can you send a web request from inside an Android app?

請原諒我缺乏關於該主題的知識,但是我對網絡,PHP,Web請求等的了解很少。 本質上,我想使用$ _GET變量將字符串發送到網站進行日志記錄。 如何在應用程序內部使用此方法發送字符串?

(我無法再自己回答6個小時,但是如果可以的話,這就是它的樣子,當然還有答案中的代碼。只是不想離開最初的問題。)

最后, 這里找到的代碼起作用了。 該應用程序向Web服務器發送請求,然后Web服務器將$ _GET變量中的字符串附加到日志文件! 花了幾個小時才弄清楚。 :L

您可以使用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());

wanstein是正確的,但是現在不推薦使用URIUtils.createURI (4.2.1),因此最好使用URIBuilder:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM