【问题标题】:how to form URL to make HTTP request in android?如何在 android 中形成 URL 以发出 HTTP 请求?
【发布时间】:2014-07-09 05:08:49
【问题描述】:

我想向下面的 url 发出 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)
                {

                }

【问题讨论】:

  • 向我们展示您到目前为止所做的尝试
  • 现在检查@Scary Wombat..
  • 使用 stringBuffer 代替字符串,并在循环中附加剩余的参数...

标签: java android http httprequest android-json


【解决方案1】:

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

【讨论】:

  • 对不起。我是安卓新手。你能用代码解释一下吗
【解决方案2】:

好的,假设您有 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

【讨论】:

    猜你喜欢
    • 2012-06-28
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多