C# Windows phone 8.1 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 这就是我需

我在Windows phone应用程序中实现HttpWebRequest时遇到一些问题

这是我第一次使用这个类,我不知道如何实现方法:

这是我的要求:

            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,我不得不实现了很多,但它工作得很好!非常感谢:)