首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.NET向Java webservice发送XML字符串时出现问题

从.NET向Java webservice发送XML字符串时出现问题
EN

Stack Overflow用户
提问于 2012-06-10 05:35:24
回答 1查看 1.1K关注 0票数 0

我尝试从Windows Phone应用程序向使用Java-WS (和提供者实现)运行的web服务发送一个非常基本的XML字符串,并检索响应。我可以看到字符串正确无误(通过服务器上的TCP监视器),但是web服务立即导致一个异常,说明源对象为null。请注意,使用Java作为客户端,我可以得到一个响应(带有TCP监视器中列出的相同请求字符串),尽管我的实现略有不同。下面是我在.NET中是如何做到的:

代码语言:javascript
复制
 string req = "<?xml version='1.0' encoding='UTF-8'?><request><requestor>WP7.1</requestor></request>";
 string url = "http://mywebservice/endpoint1test";

 WebClient wc = new WebClient();
 wc.Headers["ContentType"] = "text/xml";            
 wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);
 wc.UploadStringAsync(new Uri(url), "POST", req);

void wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
    Debug.WriteLine("Web service says: " + e.Result);
}

结果始终是空字符串,因为服务器在发生异常时返回null。我觉得我遗漏了一些简单的东西,比如头部或编码。如果有用的话,下面是客户端的Java版本,它可以工作:

代码语言:javascript
复制
    String data = "<?xml version='1.0' encoding='UTF-8'?><request><requestor>WP7.1</requestor></request>";

    // Send data
    URL url = new URL(testUrl);
    java.net.URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestProperty("Content-Type","text/xml");
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.close();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        System.out.println(line);
    }
    rd.close();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-12 20:32:05

您必须更改此行:

代码语言:javascript
复制
wc.Headers["Content-Type"] = "text/xml";   

您应该注意到,您漏掉了一个破折号=)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10964757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档