我想向下面的网址发出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)
{
}
答案 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();
请注意,上述所有代码都无法在您的UI线程中运行,您可以使用AsyncTask来满足这一要求。
以下是您了解该内容的参考资料:)
http://developer.android.com/reference/android/os/AsyncTask.html
http://developer.android.com/reference/java/net/HttpURLConnection.html
顺便说一下,正如上面提到的评论,您最好使用StringBuffer
附加String