Question

I have this code:

        WebRequest request = WebRequest.Create("https://getpocket.com/v3/oauth/request");
        request.Proxy = WebRequest.DefaultWebProxy;
        request.Credentials = System.Net.CredentialCache.DefaultCredentials; ;
        request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
        request.Method = "POST";
        string postData = "{\"consumer_key\":\"keyIsHere\",\"redirect_uri\":\"pickpocket:authorizationFinished\"}";
        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        request.ContentType = "application/json; charset=utf-8";
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        WebResponse response = request.GetResponse();
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);
        dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        Console.WriteLine(responseFromServer);

It returns code=12345456787blahblah instead of the JSON response: {"code":"12345456787blahblah"} and I can't figure out why. I got the POST request/response code from MSDN and the correct request data from the Pocket API

Was it helpful?

Solution

You need to add the X-Accept header:

request.Headers["X-Accept"] = "application/json";


From the API docs: "The X-Accept header indicates the format you would like to receive the response, the Pocket Authentication API supports two formats: application/x-www-form-urlencoded (DEFAULT) and application/json"

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top