簡體   English   中英

如何使用httpUrlConnection獲取url的查詢字符串

[英]How to get a query string for a url using httpUrlConnection , android

我正在使用HttpUrlConnection將查詢發布到網頁。 該網頁接受了我的請求,並再次發布。 例如:www.unknown.com

URL url = new URL("http://www.unknown.com"); //$NON-NLS-1$
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setReadTimeout(15*1000);
urlConnection.setDoInput(true);
urlConnection.setDoOutput (true);
urlConnection.setUseCaches (false);
urlConnection.setAllowUserInteraction(true);
out = new OutputStreamWriter(urlConnection.getOutputStream());
string content = "var1=5&var2=0&var3=6"; //$NON-NLS-1$
out.write(content);
out.flush();
out.close();

該代碼可以正常工作,並且我正在獲取html代碼。 問題在於,網頁在接受我的請求時正在處理另一個HTTP“ POST”方法。 例如,在我請求之后,URI是: http : //www.unknown.com? var1=5& var2=0& var3=6& var4=1500

我需要在代碼中獲取“ var4”的值,但找不到任何解決方案。 HttpUrlConnection.getUrl()僅返回地址http://www.unknown.com 有任何建議嗎? 謝謝。

如何使用“ getQuery()”來檢索查詢字符串。

String query = url.getQuery();

這將為您提供該URL的查詢部分。

使用StringTokenizer分隔參數。 (您將必須兩次應用StringTokenizer。)

首先從查詢字符串中獲取用“&”分隔的令牌。 這將返回“ val1 = 5”,“ val4 = 1500”等。

對上述令牌再次應用StrinTokenizer。 這次檢索以“ =”分隔的令牌。 現在,通過它進行迭代,第一個標記將是參數名稱“ val4”,第二個標記將是值“ 1500”。

StringTokenizer st = new StringTokenizer(query,"&",false); //query  is from getQuery()
while (st.hasMoreElements()) 
{   // First Pass to retrive the "parametername=value" combo

    String paramValueToken = st.nextElement().toString();

    StringTokenizer stParamVal = new StringTokenizer(paramValueToken, "=", false );

     int i = 0;
     while (stParamVal.hasMoreElements()) 
     {
        //Second pass to separate the "paramname" and "value".
        // 1st token is param name
        // 2nd token is param value


        String separatedToken = stParamVal.nextElement().toString();

        if( i== 0)
        {
            //This indicates that it is the param name : ex val4,val5 etc
            String paramName = separatedToken;
        }
        else 
        {
            // This will hold value of the parameter
            String paramValue = separatedToken;
        }
        i++;
     }
}

URL getQuery()API文檔

http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html

暫無
暫無

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

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