c# - 将 XML 字符串从 .NET 发送到 Java Web 服务时遇到问题

标签 c# java windows-phone-7 webservice-client

我正在尝试将一个非常基本的 XML 字符串从 Windows Phone 应用程序发送到使用 Java-WS(以及提供程序实现)运行的 Web 服务,并检索响应。我可以看到字符串成功了(通过服务器上的 TCP 监视器)并且看起来正确,但 Web 服务立即引发异常,指出源对象为空。请注意,使用 Java 作为客户端,我可以获得响应(使用 TCP 监视器中列出的相同请求字符串),尽管我的实现略有不同。以下是我在 .NET 中的做法:

 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。我觉得我缺少一些简单的东西,比如 header 或编码。如果有用的话,这里是可以使用的 Java 版本的客户端:

    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();

最佳答案

您必须更改此行:

wc.Headers["Content-Type"] = "text/xml";   

你应该注意到你错过了一个破折号 =)

关于c# - 将 XML 字符串从 .NET 发送到 Java Web 服务时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10964757/

相关文章:

c# - 使用 Access 数据库分发 c# 应用程序

c# - 异步等待以保持事件触发

c# - ASPX 背景图片在源代码中显示但在网页中不显示

C# 的 LINQ 用于在 ruby​​ 中等效的集合操作

java - 如何检查某个 Pattern 是否在 xml 响应的字符串表示形式中?

java - 使用带有真实证书的 jarsigner 对 jar 文件签名时出错

java - 最大化内部框架

c# - Windows Phone 应用程序和桌面应用程序之间的通信方式

windows-phone-7 - Windows Phone 中的增强现实

silverlight - 将自定义字体设置为 Web 浏览器控件,Windows Phone 7/7.5