Windows phone 8.1 HttpWebRequest
Windows phone 8.1 HttpWebRequest
我在 Windows phone 应用程序中实现 HttpWebRequest 时遇到一些问题。
这是我第一次做这个class,我不知道如何实现方法:
这是我的要求:
HttpWebRequest request = WebRequest.Create(fullPath) as HttpWebRequest;
我的目标是 return 2 个值:一个引用字符串,它是下载文件的名称(它与传递给 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()};
}
}
我在 Windows phone 应用程序中实现 HttpWebRequest 时遇到一些问题。
这是我第一次做这个class,我不知道如何实现方法:
这是我的要求:
HttpWebRequest request = WebRequest.Create(fullPath) as HttpWebRequest;
我的目标是 return 2 个值:一个引用字符串,它是下载文件的名称(它与传递给 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()};
}
}