如何在android中形成URL来发出HTTP请求?

时间:2014-07-09 05:08:50

标签: java android http httprequest android-json

我想向下面的网址发出HTTP请求。

http://192.168.1.60/api/check/merge?nodeid=2&tickets=2-0011,2-0010&saleId=140708120131003102,140708115753005302&firsttableid=1&layoutid=1&userid=1

我将票证详细信息和销售ID详细信息存储在字符串数组中。

String tickets has {2-0011,2-0010} and String saleid has {140708120131003102, 140708115753005302}

如何使用该字符串数组形成这样的URL?

String mergeurl1 = "http://192.168.1.60/api/check/merge?nodeid=2&tickets=";
                try
                {
                    for(int i=0;i<tablenameurl.length;i++)
                    {
                        //System.out.println(ticketidurl[i]+"**"+salesidurl[i]);
                        if(tablenameurl.length==i && tablenameurl != null)
                        {
                            mergeurl1=mergeurl1+ticketidurl[i]+"&";
                        }
                        else
                        {
                            mergeurl1=mergeurl1+ticketidurl[i]+",";
                        }
                    }
                    mergeurl1=mergeurl1+"saleId=";
                    for(int i=0;i<tablenameurl.length;i++)
                    {
                        //System.out.println(ticketidurl[i]+"**"+salesidurl[i]);
                        if(tablenameurl.length==i)
                        {
                            mergeurl1=mergeurl1+salesidurl[i]+"&";
                        }
                        else
                        {
                            mergeurl1=mergeurl1+salesidurl[i]+",";
                        }
                    }
                    mergeurl1=mergeurl1+"&firsttableid=1&layoutid=1&userid=1";
                    System.out.println("URL");
                    System.out.println(mergeurl1);
                }
                catch(Exception e)
                {

                }

2 个答案:

答案 0 :(得分:0)

为此,您必须使用URL编码器。最好的方法是URLEncode并编码部分网址。不要编码完整的URL,它不会工作。您只需要编码需要作为值传递的url部分。例如,在这种情况下编码2-0011,2-0010

答案 1 :(得分:0)

好的,假设您有URL字符串mergeurl1

URL url = new URL(mergeurl1);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

如果您想获得回复......

InputStream in = new BufferedInputStream(urlConnection.getInputStream());
//go ahead to process your information with the inputstream

最后按urlConnection.disconnect();

关闭HttpURLConnection

请注意,上述所有代码都无法在您的UI线程中运行,您可以使用AsyncTask来满足这一要求。

以下是您了解该内容的参考资料:)

http://developer.android.com/reference/android/os/AsyncTask.html
http://developer.android.com/reference/java/net/HttpURLConnection.html

顺便说一下,正如上面提到的评论,您最好使用StringBuffer附加String