简体   繁体   中英

How do I parse a HTTP Response of following format

I am using the bulk sms api to trigger send an sms to mobile number in and android phone. The format of the bulk sms api is follows

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

The following is the response I can get in android as string using code

bytesSent = httpclient.execute(httppost, res);

response below

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

How do I parse this response like key value pairs ?

A little success with following code , but it fails when the regex char is '|'

  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 '|'

I get a Log output as single characters string array like {"1","7","0",........}

UPDATE

regex = "\\|"  // works fine
  • Use the split() method of String to split the response into different entries.
  • Loop through the resulting array
  • use split() again to separate keys from values
  • store the result in a map, result[0] is the key, result[1] is the value

if you need to maintain order make sure you use a map that does that, eg LinkedHashMap

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM