Json 通过WP8应用程序发送带有HTTPWebRequestion的Cookie

Json 通过WP8应用程序发送带有HTTPWebRequestion的Cookie,json,cookies,windows-phone-8,httpwebrequest,Json,Cookies,Windows Phone 8,Httpwebrequest,我必须为每个后续的HTTPWebRequest向服务器发送cookie。我的代码如下 class APIManager { CookieContainer cookieJar = new CookieContainer(); CookieCollection responseCookies = new CookieCollection(); private async Task<string> httpRequest(HttpWebRequest request) { s

我必须为每个后续的HTTPWebRequest向服务器发送cookie。我的代码如下

class APIManager
{

CookieContainer cookieJar = new CookieContainer();
CookieCollection responseCookies = new CookieCollection();

private async Task<string> httpRequest(HttpWebRequest request)
{
    string received;

    using (var response = (HttpWebResponse)(await Task<WebResponse>.Factory
        .FromAsync(request.BeginGetResponse, request.EndGetResponse, null)))
    {
        using (var responseStream = response.GetResponseStream())
        {
            using (var sr = new StreamReader(responseStream))
            {
                cookieJar = request.CookieContainer;
                responseCookies = response.Cookies;
                received = await sr.ReadToEndAsync();
            }
        }
    }

    return received;
}

public async Task<string> Get(string path)
{
    var request = WebRequest.Create(new Uri(path)) as HttpWebRequest;
    request.CookieContainer = cookieJar;

    return await httpRequest(request);
}

public async Task<string> Post(string path, string postdata)
{
    var request = WebRequest.Create(new Uri(path)) as HttpWebRequest;
    request.Method = "POST";
    request.CookieContainer = cookieJar;

    byte[] data = Encoding.UTF8.GetBytes(postdata);
    using (var requestStream = await Task<Stream>.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, null))
    {
        await requestStream.WriteAsync(data, 0, data.Length);
    }

    return await httpRequest(request);
}

}
我使用了它,但服务器仍然返回“令牌不匹配”错误。我需要和供应商谈谈吗

下图显示了我的问题和要求


我还没看到你对cookieJar做过什么

//Create the cookie container and add a cookie.
request.CookieContainer = new CookieContainer();

// This example shows manually adding a cookie, but you would most
// likely read the cookies from isolated storage.
request.CookieContainer.Add(new Uri("http://api.search.live.net"),
new Cookie("id", "1234"));
cookieJar
在您的APIManager中是一个成员,每次您的实例APIManager中,
cookieJar
都是一个新实例。您需要确保
cookieJar
包含网站需要的内容


你可以看看这个

你有一个鹰眼,事实上代码是旧的。我将cookiejar更改为static,并验证它在下一次调用中的计数为3。请让我知道使其成为静态将起作用,或者我应该持久化域ii(cookie供应商要求持久化),然后每次都发送它?当前代码是私有静态CookieContainer cookieJar=new CookieContainer();静态成员仍然可以共享,因为静态成员属于类而不是实例。@LojiSmithKaleem您可以尝试请求。标头[“Cookie”]=“您的Cookie”;request.CookieContainer.Add(新Uri(“http://.com,UriKind.Absolute),responseCookies[“cookietitle”];
//Create the cookie container and add a cookie.
request.CookieContainer = new CookieContainer();

// This example shows manually adding a cookie, but you would most
// likely read the cookies from isolated storage.
request.CookieContainer.Add(new Uri("http://api.search.live.net"),
new Cookie("id", "1234"));