Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对ASP.NET的Java POST请求失败,C#正常工作_Java_Post_Asp.net Web Api_Httpurlconnection - Fatal编程技术网

对ASP.NET的Java POST请求失败,C#正常工作

对ASP.NET的Java POST请求失败,C#正常工作,java,post,asp.net-web-api,httpurlconnection,Java,Post,Asp.net Web Api,Httpurlconnection,我有一个ASP.NET Web API2应用程序,其中控制器具有: public class LicenseController : ApiController { [Route("license")] [HttpPost] public XmlDocument PostLicense([FromBody] XmlDocument inputStream) { XmlDocument doc

我有一个ASP.NET Web API2应用程序,其中控制器具有:

    public class LicenseController : ApiController
    {
        [Route("license")]
        [HttpPost]
        public XmlDocument PostLicense([FromBody] XmlDocument inputStream)
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml("<root/>");
            return doc;
        }
}
我已经尝试更改了发出调用的Java代码的许多设置。为什么不将XML发布到web应用程序控制器


谢谢-dave

在编写XML后尝试调用
writer.flush()
。@VGR-很好。但是我添加了它,它仍然在ASP.NET端给我一个空值。请注意,我已将此添加到上面的代码中。从请求中删除accept charset属性是否会有所不同?@VGR-仍然以null形式出现。我还尝试将内容类型设置为“text/plain”-仍然没有成功;charset=“UTF-8”?(我不认为这会有帮助,但值得一试。)
        static void Main(string[] args)
        {
            string xml = "<david><shirley/></david>";

            Uri httpSite = new Uri(phoneHomeUri + "/license");
            WebRequest wreq = WebRequest.Create(httpSite);
            wreq.UseDefaultCredentials = true;
            wreq.PreAuthenticate = true;
            wreq.Credentials = CredentialCache.DefaultCredentials;
            wreq.Method = "POST";
            wreq.ContentType = "text/xml";

            Stream request = wreq.GetRequestStream();
            byte[] byteArray = Encoding.UTF8.GetBytes(xml);
            request.Write(byteArray, 0, byteArray.Length);
            HttpWebResponse response = (HttpWebResponse) wreq.GetResponse();

            Stream receiveStream = response.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            StreamReader readStream = new StreamReader(receiveStream, encode);
            string s = readStream.ReadToEnd();
}
HttpURLConnection urlConnection = (HttpURLConnection) new URL(phoneHomeUri + "/license").openConnection();
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setChunkedStreamingMode(0);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("accept-charset", "UTF-8");
urlConnection.setRequestProperty("content-type", "text/xml");

OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8");
writer.write(xml);
writer.flush();


InputStream result = urlConnection.getInputStream();