如何解析以下格式的HTTP响应

时间:2014-12-19 07:30:03

标签: android api http

我正在使用批量短信api触发发送短信到手机号码和Android手机。批量短信api的格式如下

http://xxx.xxx.xxx/bulksms/bulksms?username=fds-xxx&password=xxx&type=0&dlr=1&destination=9422522891,8275004333&source=xxx&message=18%20December

以下是我可以使用代码

在android中作为字符串获得的响应
bytesSent = httpclient.execute(httppost, res);

以下回复

1701|919422522891:224c1214-bb95-414d-ba76-77db95370545,1701|918275004333:5e93a439-2644-4455-9f01-f27e6cf0cde6

如何像关键值对一样解析此响应?

以下代码取得了一些成功,但是当正则表达式字符为' |'

时失败
  public String[] split(String regex,String input)
    {
        input = "1701|919422522891:224c1214-bb95-414d-ba76-77db95370545,1701|918275004333:5e93a439-2644-4455-9f01-f27e6cf0cde6";
        regex = "|"; // does not work

        //regex = ":"; // works correct
        String[] soso = Pattern.compile(regex).split(input, input.length());

        for (String s : soso) {
            Log.e("TAG",s.toString());
        }

        return null;
    }

for regex char' |'

我得到一个Log输出作为单个字符的字符串数组,如{" 1"," 7"," 0",........ }

更新

regex = "\\|"  // works fine

1 个答案:

答案 0 :(得分:2)

  • 使用String的split() method将响应拆分为不同的条目。
  • 循环生成的数组
  • 再次使用split()将值与值分开
  • 将结果存储在地图中,result[0]是关键,result[1]是值

如果您需要维护订单,请务必使用可以执行此操作的地图,例如LinkedHashMap