KSoap-Android\JCIFS 发送空 HTTP 帖子

2024-01-11

我创建了一个基于 KSOAP-Android 和 JCIFS 的 NTLM 身份验证 SOAP 客户端。实现看起来像这样:

public class NtlmServiceConnection implements ServiceConnection 
{
    public NtlmServiceConnection(final SoapConnectionInfo connectionInfo, String path)      
    {
        httpclient = new DefaultHttpClient();
        httpclient.getAuthSchemes().register(AuthPolicy.NTLM, new NTLMSchemeFactory());

    //...

    @Override
    public InputStream openInputStream() throws IOException {
        ByteArrayEntity re = new ByteArrayEntity(bufferStream.toByteArray());
        post.removeHeaders("CONTENT-LENGTH");
        post.setEntity(re);
        HttpResponse rep = httpclient.execute(post);
        InputStream stream = rep.getEntity().getContent();
        return stream;
    }

    //....
}

从表面上看,KSOAP 正在生成正确的消息,因为bufferStream按预期填充了 SOAP 信封。 JCIFS 似乎正在完成其工作,而且我可以看到通过 Wireshark 进行的 NTLM 质询响应。问题是消息正文丢失。它根本就是空的。因此,Web 服务遇到 501 并且InputStream返回的是空值。

任何人都知道为什么会发生这种情况?

注意:我删除了下面的 CONTENT-LENGTH 标头,因为setEntity显然试图设置它,但 KSOAP 已经设置了它。我只是将其删除并允许setEntity重置它。


我终于弄清楚了并在这里写了博客:http://csharpening.net/blog/?p=271 http://csharpening.net/blog/?p=271

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KSoap-Android\JCIFS 发送空 HTTP 帖子 的相关文章

随机推荐