对ASP.NET的Java POST请求失败,C#正常工作
我有一个ASP.NET Web API2应用程序,其中控制器具有:对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
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();