C# Windows phone 8.1 HttpWebRequest
我在Windows phone应用程序中实现HttpWebRequest时遇到一些问题 这是我第一次使用这个类,我不知道如何实现方法: 这是我的要求:C# Windows phone 8.1 HttpWebRequest,c#,windows-phone-8.1,httpwebrequest,C#,Windows Phone 8.1,Httpwebrequest,我在Windows phone应用程序中实现HttpWebRequest时遇到一些问题 这是我第一次使用这个类,我不知道如何实现方法: 这是我的要求: HttpWebRequest request = WebRequest.Create(fullPath) as HttpWebRequest; 我的目标是返回2个值:一个ref字符串,它是下载文件的名称(它与传递到URL的文件名不同,因为标题是我的sha256代码)和下载文件内容的JsonTextReader 这就是我需
HttpWebRequest request = WebRequest.Create(fullPath) as HttpWebRequest;
我的目标是返回2个值:一个ref字符串,它是下载文件的名称(它与传递到URL的文件名不同,因为标题是我的sha256代码)和下载文件内容的JsonTextReader
这就是我需要总结方法的方式:
shaDownloaded = response.Headers["Content-Disposition"].Replace("attachment; filename=", String.Empty).Replace("\"", String.Empty);
reader = new StreamReader(response.GetResponseStream());
JsonTextReader jReader = new JsonTextReader(reader);
return jReader;
我的问题是我不知道如何达到这一点。我尝试了一些方法,但我总是让下载与stackTrace异步,所以总是空响应。谁能帮助实现一个好方法?这是我的代码部分:
public JsonTextReader DownloadFileFromService(string fileUrl, string fileName, string oldSha, ref string newSha)
{
try
{
string fullPath = string.Format(fileUrl + fileName + "&sha=" + oldSha);
StreamReader reader;
HttpWebRequest request = WebRequest.Create(fullPath) as HttpWebRequest;
// Get response here {
shaDownloaded = response.Headers["Content-Disposition"].Replace("attachment; filename=", String.Empty).Replace("\"", String.Empty);
reader = new StreamReader(response.GetResponseStream());
//}
JsonTextReader jReader = new JsonTextReader(reader);
return jReader;
} catch(Exception ex){
return null;
}
}
我真的解决不了这个问题。谢谢你的帮助,我不知道我是否理解你的问题,但我试着回答 这就是我如何使用HttpWebRequest,并尝试实现它
public async Task<object []> ApiCommand(string api, string json)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(Variables.apiURL + api);
httpWebRequest.ContentType = "text/plain; charset=utf-8";
httpWebRequest.Method = "POST";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
try
{
HttpResponseMessage response = await client.PostAsync(Variables.apiURL + api, new StringContent(json, Encoding.UTF8, "application/json"));
return new[] {response.StatusCode.ToString(), await response.Content.ReadAsStringAsync()};
}
catch (Exception ex)
{
return new[] {"EXCEPTION", ex.ToString()};
}
}
public异步任务ApiCommand(字符串api,字符串json)
{
var httpWebRequest=(httpWebRequest)WebRequest.Create(Variables.apirl+api);
httpWebRequest.ContentType=“text/plain;charset=utf-8”;
httpWebRequest.Method=“POST”;
HttpClient=新的HttpClient();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
尝试
{
HttpResponseMessage response=wait client.PostAsync(Variables.apirl+api,新的StringContent(json,Encoding.UTF8,“application/json”);
返回新[]{response.StatusCode.ToString(),wait response.Content.ReadAsStringAsync()};
}
捕获(例外情况除外)
{
返回新的[]{“异常”,例如ToString()};
}
}
您好,谢谢您的回答。我可能解释得不好。。我这里唯一的问题是httpclient,它没有在windows phone上实现:(它的实现是因为我在我的项目中使用它只是添加了dllOk,我不得不实现了很多,但它工作得很好!非常感谢:)