我正在构建我的第一个 windowsPhone 8.1 应用程序,我的应用程序的作用是创建与服务器的连接以从中获取信息,因此我正在编写代码以通过向服务器发送 json-rpc 请求以获取一些信息来执行此过程,我第一次成功获取它,但是当我发送第二个请求时,我收到了一个带有 404 错误的空响应(找不到页面)。
但是,当我在没有 https(仅限 http)的情况下调用该服务时,无论调用多少次,它都可以正常工作!
public async Task<string> GetDataFromServer(string urlToCall, string JSONData,string RR)
{
string UserName = “XXXXXXX”
string Password = "XXX";
using ( var handler = new HttpClientHandler())
{
handler.Credentials = new NetworkCredential(UserName, Password);
HttpClient client = new HttpClient(handler);
HttpResponseMessage response = null;
try
{
response = await client.PostAsync(urlToCall, new StringContent(JSONData.ToString(), Encoding.UTF8, " application/json"));
string res = response.Content.ReadAsStringAsync().Result;
Windows.UI.Popups.MessageDialog g = new Windows.UI.Popups.MessageDialog(res);
await g.ShowAsync();
return res;
}
catch (Exception ex)
{
Windows.UI.Popups.MessageDialog g = new Windows.UI.Popups.MessageDialog("Error is : " + ex.Message);
g.ShowAsync();
return "Error";
}
finally
{
response.Dispose();
client.CancelPendingRequests();
client.Dispose();
handler.Dispose();
}
}
}
再次,当第一次调用服务的 URL(以 https 开头)时,我得到了搜索数据的响应,但第二次我收到了一个带有 404 错误(页面未找到)的空响应!
请任何帮助
最佳答案
请尝试使用此解决方案。
public async Task<string> SendJSONData3(string urlToCall, string JSONData)
{
string UserName = "XXXXXXXXX";
string Password = "XXXXXXXXX";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(urlToCall);
httpWebRequest.Credentials = new NetworkCredential(UserName, Password);
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(await httpWebRequest.GetRequestStreamAsync()))
{
string json = JSONData;
streamWriter.Write(json);
streamWriter.Flush();
}
var httpResponse = (HttpWebResponse)await httpWebRequest.GetResponseAsync();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
return result;
}
}
关于json - 我的 Windows Phone 应用程序获得空响应(404 Not Found)第二次,第一次运行良好;如果没有 SSL,它总是可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038530/