gpt4 book ai didi

android - 分块 Web 服务响应

转载 作者:行者123 更新时间:2023-11-29 02:14:22 25 4
gpt4 key购买 nike

能否请您提供一个示例,说明如何在 Android 中读取来自 Web 服务的分块响应

谢谢

编辑:我尝试调用一个 soap 网络服务,它用代表图像的 base64 编码字符串回复我

代码如下:

String SOAP_ACTION = "service soap action";
try {
URL u = new URL("server url");
URLConnection uc = u.openConnection();
HttpURLConnection connection = (HttpURLConnection) uc;
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("SOAPAction", SOAP_ACTION);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-type", "text/xml; charset=utf-8");
String xmldata="soap request envelope";
//send the request
OutputStream out = connection.getOutputStream();

Writer wout = new OutputStreamWriter(out);

wout.write(xmldata);

wout.flush();

wout.close();

BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));



String result;
StringBuilder builder=new StringBuilder();
//read response
while ((result=rd.readLine()) != null) {
builder.append(result);
}

最佳答案

说教式的回答:

  1. 您应该真正使用 SOAP 库,而不是尝试重新发明轮子:How to call a SOAP web service on Android
  2. 如果可能,使用 REST 服务而不是 SOAP,因为 SOAP 不适合移动平台:http://javatheelixir.blogspot.com/2009/12/soap-vs-rest-in-service-layer-for.html

实用答案:

问题:

  • 看来您只得到了响应的第一部分。

可能的解决方案

  1. 尝试使用 write(int c) 而不是 write(String str)。然后忽略\r 和\n 字符。
  2. 在循环中使用 read() 而不是 readLine()。

发问者注意事项: 很抱歉留下讲道答案。我相信您已经考虑过这些选择。但它会帮助那些能够使用 SOAP 库的人。如果您出于特定原因决定不使用 SOAP 库,请将其放在评论中以造福他人。

关于android - 分块 Web 服务响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com