1、直接在浏览器打开“http://sg1.api.bing.com/qsonhs.aspx?q=设计”会返回JSON数据
2、在VC++中bool CQuickSearchDlg::getSearchJson(const TCHAR * keyword, TCHAR * json)
{
wchar_t isonUrl[200] = _T("http://sg1.api.bing.com/qsonhs.aspx?q=设计");
CInternetSession cSession;
CHttpFile *cFile;
char sRecived[1024] = {0};
CString szAllData = _T(""); try
{
cFile = (CHttpFile *)cSession.OpenURL(isonUrl);
}
catch(CInternetException * m_pException)
{
cFile = NULL;
m_pException->m_dwError;
m_pException->Delete();
cSession.Close();
AfxMessageBox(_T("CInternetException"));
return false;
} DWORD dwStatusCode;
cFile->QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK)
{
while(cFile->ReadString((LPTSTR)sRecived, 1024) != NULL)
szAllData += sRecived;
int a = 0;
}
else
{
MessageBox(_T("请求失败。"));
}
cFile->Close();
delete cFile;
cSession.Close(); return true;
}
获取到的szAllData数据却是:{"AS":{"Query":"设计","FullResults":0}}
这是哪里出问题了呢?vc++jsonCInternetSession OpenURL
2、在VC++中bool CQuickSearchDlg::getSearchJson(const TCHAR * keyword, TCHAR * json)
{
wchar_t isonUrl[200] = _T("http://sg1.api.bing.com/qsonhs.aspx?q=设计");
CInternetSession cSession;
CHttpFile *cFile;
char sRecived[1024] = {0};
CString szAllData = _T(""); try
{
cFile = (CHttpFile *)cSession.OpenURL(isonUrl);
}
catch(CInternetException * m_pException)
{
cFile = NULL;
m_pException->m_dwError;
m_pException->Delete();
cSession.Close();
AfxMessageBox(_T("CInternetException"));
return false;
} DWORD dwStatusCode;
cFile->QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK)
{
while(cFile->ReadString((LPTSTR)sRecived, 1024) != NULL)
szAllData += sRecived;
int a = 0;
}
else
{
MessageBox(_T("请求失败。"));
}
cFile->Close();
delete cFile;
cSession.Close(); return true;
}
获取到的szAllData数据却是:{"AS":{"Query":"设计","FullResults":0}}
这是哪里出问题了呢?vc++jsonCInternetSession OpenURL
解决方案 »
- 求助:帮忙下载PUDN网站资料!!!
- MFC中运行线程程序自动退出的问题
- 怎么实现纯桌面截屏?怎么办?
- SDK编程中,一个DIALOG对话框, 对话框上有一些栏位子窗口,我想在某些子窗口失去焦点前时检测其输入值,值合格才允许失去焦点..
- --继续100分---刚刚那个问题已经结帖了.这里新开再问 :) 关于COM与数据库
- richedit里打回车,总有系统警告“咚”的声音,请问如何去掉这个声音?
- dll的问题!
- 请问高手:在VC下操作FOXPRO DBF库有什么方法
- 如何提取文件日期?
- 这个问题捆扰了我一个礼拜了,明天就要交任务了,如果解决不了这个月就算白忙了,救救我吧!UP有分
- MFC使用CHttpFile访问问题
- 如何修改账户昵称啊
转为UTF-8编码就可以了
例如“设计”的UTF-8码是E8AEBE E8AEA1http://sg1.api.bing.com/qsonhs.aspx?q=%E8%AE%BE%E8%AE%A1
已知char utf[10]里面存储了以UTF-8编码存储的字符,如何获得相应的十六进制字符编码?
char utf[10];
char utff[30];
for (int n = 0; n < strlen(utf); n ++)
{
sprintf(&utff[n * 3], "%%%02x", utf[n]);
}
for (; i < len; i++)
{
printf("%%%#02x\n", pchDestStr[i]);
}
输出为:
ab你好12:
%0x61
%0x62
%0xffffffe4
%0xffffffbd
%0xffffffa0
%0xffffffe5
%0xffffffa5
%0xffffffbd
%0x31
%0x32
请按任意键继续. . .
我希望的输出为:
ab你好12:
0x61,0x62,0xE4,0xBD,0xA0,0xE5,0xA5,0xBD,0x31,0x32