C++实现Http Post请求 代码怎么运行出这个结果

[复制链接]
查看11 | 回复9 | 2021-1-27 06:17:37 | 显示全部楼层 |阅读模式
http://www.ltp-cloud.com/document/new/#api_rest_error
就像这个网页第一个里面说的我是中国人这句话的句法分析,然后用C++实现httppost请求,网上有不少地方都有相似的代码,可以说是完全一样的代码,但是运行出来根本就不对,
如下:
参考资料:
http://apps.hi.baidu.com/share/detail/39003388
http://blog.csdn.net/yc0188/article/details/4741871
http://bbs.chinaunix.net/thread-2094334-1-1.html

//头文件
#include
#include
#include
usingnamespacestd;

//函数声明
intrequest(char*hostname,char*api,char*parameters);

//方法调用
int_tmain(intargc,TCHAR*argv[],TCHAR*envp[])
{
intnRetCode=0;

//initializeMFCandprintanderroronfailure
if(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0))
{
//TODO:changeerrorcodetosuityourneeds
_tprintf(_T("FatalError:MFCinitializationfailed\n"));
return1;
}
request("reg.163.com","http://reg.163.com/CheckUser.jsp","test");
returnnRetCode;
}

//函数实现
intrequest(char*hostname,char*api,char*parameters)
{
WSADATAWsaData;
WSAStartup(0x0101,&WsaData);

//初始化socket
structhostent*host_addr=gethostbyname(hostname);
if(host_addr==NULL)
{
couth_addr_list);

intsock=socket(AF_INET,SOCK_STREAM,0);
if(sock==-1)
{
return-100;
}

//建立连接
if(connect(sock,(conststructsockaddr*)&sin,sizeof(sockaddr_in))==-1)
{
cout -->
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
HTTP头里面有些东西不是必需的,象什么Referer之类的去掉就行,不会有影响的
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
这是我用win32运行出来的结果:
HTTP/1.1200OK
Server:nginx
Date:Sat,05Jul201407:43:13GMT
Content-Type:text/html;charset=UTF-8
Transfer-Encoding:chunked
Connection:keep-alive
Vary:Accept-Encoding
Cache-Control:no-cache
Set-Cookie:SID=dbc45a17-6882-4450-88b7-5b72c2a6f65a;domain=reg.163.com;path=/
Set-Cookie:JSESSIONID=adbSGcF80xKlj5_EHEfCu;path=/
Expires:Sat,05Jul201407:43:12GMT
Vary:User-Agent
Vary:Accept
Content-Encoding:gzip
235

而那个api网页上面说的正确运行结果是:
$curl-i"http://api.ltp-cloud.com/analysis/?api_key=YourApiKey&text=我是中国人。&pattern=dp&format=plain"
HTTP/1.1200OK
Server:nginx/1.1.19
Date:Fri,03Jan201404:24:32GMT
Content-Type:text/plain
Transfer-Encoding:chunked
Connection:keep-alive
Vary:Accept-Encoding
我_0是_1SBV
是_1-1HED
中国_2人_3ATT
人_3是_1VOB
求大神分析一下我在主文里给的那个代码!感激
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
检查一下你的参数是否正确,比如api_key
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
引用3楼dataxdata的回复:检查一下你的参数是否正确,比如api_key
我是新手,不是很清楚。。。。。
求解一下代码里面怎么赋参数。
能提供一下这个相关的代码吗?
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
这个网站好像是要注册的,注册后有个用户码,以后在使用这个网站的时候在参数中需要提供这个用户码,就是api_key参数,你有这个用户码吗?
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
引用5楼dataxdata的回复:这个网站好像是要注册的,注册后有个用户码,以后在使用这个网站的时候在参数中需要提供这个用户码,就是api_key参数,你有这个用户码吗?
嗯我有现在该怎么用呢?
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
在参数中把这些参数填进去就行了,一开始最好用GET方式,简单一些
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
求代码啊!!
求大神支招!!!
回复

使用道具 举报

千问 | 2021-1-27 06:17:37 | 显示全部楼层
为什么这段代码我运行了一下,就报错了呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行