2

我正在使用 C++ Rest SDK(代号“Casablanca”)在 Visual C++ 2012 中编写客户端代码。我创建了一个客户端并希望将文本字符串发布到服务器。但是,当我发送以下代码时,它正在编译但不发送发送请求。当我在“methods::POST”之后删除所有内容并发送一个空白的发布请求时,服务器会发送和接收它。你能指导我问题出在哪里吗?与此功能相关的文档可在Casablanca Documentation上找到。

pplx::task<http_response>resp = client.request(methods::POST,L"",L"This is the random text that I wish to send", L"text/plain");
4

4 回答 4

1

我认为你在这里给出的用法看起来是正确的。你的卡萨布兰卡是最新版本吗?请从这里查看:http ://casablanca.codeplex.com/ 如果您确定您的测量是准确的,您可能需要创建一个最小的复制并在此处提交错误:http: //casablanca.codeplex.com/工作项/列表/基本

于 2013-07-12T23:01:24.123 回答
1

我遇到了类似的问题,我所有的帖子在服务器上都是空白的,经过几个小时的工作,我找到了一个可能的解决方案。我将默认内容类型更改为application/x-www-form-urlencoded并开始传递类似此示例的值data=text1&data2=text2

client.request(methods::POST,L"",L"data=text1&data2=text2", L"application/x-www-form-urlencoded");
于 2014-02-27T21:27:31.377 回答
0

我还不能发表评论,所以我必须把我的想法放在一个答案中。我这样解决了这个问题:请求方法的重载将内容类型作为参数,因此您不必更改代码。

m_client->request(methods::POST, L"/statuses/update.json?" + url_encode(data),L"",L"application/x-www-form-urlencoded");

显然你必须实现 url_encode 方法,但这并不难。“卡萨布兰卡”中有一个很好的实现。在这个网站上搜索也会找到一些很好的例子。

于 2014-09-20T20:53:35.250 回答
0

The body parameter must be a json::value.

于 2013-06-14T20:53:11.757 回答