微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android - 如何在正文中使用带有元素标签的 Volley HTTP Post

如何解决Android - 如何在正文中使用带有元素标签的 Volley HTTP Post

我一直在尝试弄清楚如何在正文中使用带有 HTML 元素标签的 Volley,但可以使用一些帮助。

例如,对于我使用的 API,使用 POST 创建用户所需的格式如下所示:

{
    "username":"","password":"","email":"someone@example.invalid","first_name":"John","last_name":"Doe","phone_number":"202-555-0113","address":"123 Road Name","city":"Jamesetown","state":"AZ","postal_code":"12345","country":"United States",}

...我能够在Android端格式化并成功处理POST,如下所示:

@Override
public byte[] getBody() throws AuthFailureError {

    Map<String,String> bodykeyvalue = new HashMap<>();

    bodykeyvalue.put("username",accountName);               
    bodykeyvalue.put("password",accountPassword);           
    bodykeyvalue.put("email",email);                        
    bodykeyvalue.put("first_name",first);                   
    bodykeyvalue.put("last_name",last);   
    // etc.                  

    return new JSONObject(bodykeyvalue).toString().getBytes();
}

然而,当涉及到需要使用元素标签格式化的 POST 时,我似乎无法弄清楚在我的 Volley 正文中将如何格式化。如何将其放入 MAP 对象中?在任何回复中,如果 getBodyContentType 也需要更改,您能否也通知我?标头内容类型应保持不变。谢谢!

<sci_request version="1.2">
  <data_service>
    <targets>
      <device id="1234-5678" />
    </targets>
   <requests>
     <device_request target_name="myTarget"> 
       some request string value
     </device_request>
   </requests>
  </data_service>
</sci_request>

解决方法

我发现这比预期容易得多......只需按如下方式更改正文:

@Override
public byte[] getBody() throws AuthFailureError {

    String data =
                "<sci_request version=\"1.2\">" +
                "<data_service>" +
                "<targets>" +
                "<device id=\"1234-5678\" />" +
                "</targets>" +
                "<requests>" +
                "<device_request target_name=\"myTarget\">" +
                "some request string value" +
                "</device_request>" +
                "</requests>" +
                "</data_service>" +
                "</sci_request>";
             
    return data.getBytes();
}

需要注意的是,这是一个 Volley StringRequest,此处并未显示所有代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?