0

我正在尝试使用 API 签入 Foursquare,我已经获得了 oauth_token,并且正在使用 oauth_token 进行 POST 请求。根据文档,我遇到的端点是https://api.foursquare.com/v2/checkins/add。但是,这会返回 400 Bad Request 消息。这是我在 C# 中的代码

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.foursquare.com/v2/checkins/add?oauth_token"+ oauth_token + "&venueId=" + venueId);

request.Method = "POST";

HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();

Stream responseStream = webResponse.GetResponseStream();

但是,当我在 curl 中执行相同操作时,它会发布一个签入,然后我会收到一个 json 响应

curl --data "oauth_token=[oaut_token]&venueId=[venueId]" https://api.foursquare.com/v2/checkins/add

4

2 回答 2

1

最终起作用的是以下内容:

        using (WebClient wc = new WebClient())
        {
            System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
            reqparm.Add("oauth_token", oauth_token);
            reqparm.Add("venueId", venueId);

            byte[] responsebytes = wc.UploadValues(URI, "POST", reqparm);
            string responsebody = Encoding.UTF8.GetString(responsebytes);
        }

感谢大家的帮助!

于 2013-10-31T18:00:23.870 回答
0

您应该将数据写入请求输入流:HttpWebRequest.GetRequestStream()

于 2013-10-31T16:55:42.723 回答