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

标签 android api http

我正在使用批量短信 api 来触发向手机号码和 Android 手机发送短信。群发短信接口(interface)格式如下

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;
    }

对于正则表达式字符 '|'

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

更新

regex = "\\|"  // works fine

最佳答案

  • 使用split() method的字符串将响应拆分为不同的条目。
  • 遍历结果数组
  • 再次使用 split() 将键与值分开
  • 将结果存储在一个map中,result[0]是键,result[1]是值

如果您需要维持秩序,请确保您使用可以做到这一点的 map ,例如LinkedHashMap

关于android - 如何解析以下格式的 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27561523/

相关文章:

java - 如何显示我的菜单 Activity ?

android - 获取用户友好的日期android

api - RabbitMQ HTTP API 请求 401 未经授权

api - 电视指南列表 API

ios - 从 Xamarin iOS 应用程序打开特定的 Facebook 个人资料

javascript - java HTTP 503 错误(不是由于服务器过载)

android - 通过OpenCV 3.0 RC1在Android中创建BackgroundSubtractorMOG2

android - 同步Gradle失败

JAVA使用谷歌语音识别API

javascript - 如何在前端显示响应数据?