WinInetAPI问题,HttpSendRequest总返回12007

lvlin1980 2010-02-25 03:07:17
WinInetAPI问题,HttpSendRequest总返回12007.

代码如下,哪位大侠帮看看(刚注册也没啥分,先谢谢了)。
HINTERNET hSession = NULL;
WCHAR m_Url[MAX_URL_LEN] = {0};
WCHAR m_GetEmail[MAX_URL_LEN] = {0};

CString getEmail = _T("");

SetCursor(LoadCursor(NULL, IDC_WAIT));

hSession = InternetOpen (L"WapClient", INTERNET_OPEN_TYPE_PRECONFIG, NULL, 0, 0);
if (hSession == NULL)
{
AfxMessageBox(L"调用InternetOpen失败。");
goto Error;
}

//连接服务器
wcscpy(m_Url, L"http://192.168.8.70/mig-mobile-war/receive");//内网wap站点
HINTERNET hConnect = InternetConnect(hSession,
m_Url,
INTERNET_DEFAULT_HTTP_PORT,
NULL,
NULL,
INTERNET_SERVICE_HTTP,
0,
0);
if (hConnect == NULL)
{
AfxMessageBox(L"调用InternetConnect失败。");
goto Error;
}
//创建请求
LPCWSTR acceptTypes[2] = {TEXT("*/*"), NULL};
DWORD flags = INTERNET_FLAG_RELOAD |
INTERNET_FLAG_NO_CACHE_WRITE |
INTERNET_FLAG_KEEP_CONNECTION | // This is necessary if authentication is required.
INTERNET_FLAG_NO_COOKIES; // This is used to avoid possible server errors on successive sessions.
/*flags = flags
| INTERNET_FLAG_SECURE
| INTERNET_FLAG_IGNORE_CERT_CN_INVALID
| INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
;*/
HINTERNET hRequest = HttpOpenRequest(hConnect,
L"POST",
L"",
L"HTTP/1.1",
//HTTP_VERSION,
NULL,
acceptTypes,
flags,
0);
if (hRequest == NULL)
{
AfxMessageBox(L"调用HttpOpenRequest失败。");
goto Error;
}
//发送请求
//CString getEmail = _T("");
getEmail.Format(L"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"
L"<xml>\r\n"
L"<action>receive</action>\r\n"
L"<cell id=\"13910019097\"></cell>\r\n"
L"<password>%s</password>\r\n"
L"<number>%d</number>\r\n"
L"</xml>\r\n", L"nidaye", 2);
//CString->char *
int nSize = getEmail.GetLength();
char *msg = new char[nSize + 1];
memset(msg, 0, nSize + 1);
wcstombs(msg, getEmail, nSize + 1);

unsigned int contentLength = 0;
//
// Prepares headers
//
WCHAR headers[512];
contentLength = (msg != NULL)?strlen(msg):0;

const void* msgToSend = (const void*)msg;

wsprintf(headers, TEXT("Content-Type: %s\r\nContent-Length: %d"), TEXT("application/vnd.syncml+xml"), contentLength);
int numretries;

for (numretries = 0; numretries < 3; numretries++)
{
if (!HttpSendRequest(hRequest, headers, wcslen(headers), (LPVOID)msgToSend, contentLength))
{
int errorCode = GetLastError();
CString tmp;
tmp.Format(L"%d", errorCode);
AfxMessageBox(tmp); //此处总返回12007

//AfxMessageBox(L"调用HttpSendRequest失败。");
goto Error;
}


}
...全文
1410 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我骷髅我快乐 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lvlin1980 的回复:]
http://192.168.8.70/mig-mobile-war/receive 为内部测试用wap站点
[/Quote]

如果是用的WIFI 呢? 我用WIFI 连接内网的IP ,InternetSendRequest总是返回 12007(The server name could not be resolved. )
我骷髅我快乐 2010-09-06
  • 打赏
  • 举报
回复
我登陆了 怎么看不了内容?
yy121086191 2010-07-28
  • 打赏
  • 举报
回复
搞定没?求解答
xwvivian 2010-07-06
  • 打赏
  • 举报
回复
怎么解决的啊
为毛呀 2010-04-26
  • 打赏
  • 举报
回复
找到原因了没有呀?
lvlin1980 2010-02-27
  • 打赏
  • 举报
回复
看来最后还是需要小弟自己搞定了。。。。。。
lvlin1980 2010-02-26
  • 打赏
  • 举报
回复
有明白wm向wap站点发请求的帮忙看看
lvlin1980 2010-02-25
  • 打赏
  • 举报
回复
目前,还是在模拟器上跑的,还没走gprs,因为外网映射什么的还没弄好。
刚才又调试了一下,把Content-Type的内容修改为TEXT("text/xml; charset=\"utf-8\"") 可惜还不对, wap测试的url应该是没问题,因为,在j2me和symbian上可以向它发http请求
儿大不由爷 2010-02-25
  • 打赏
  • 举报
回复
如果你用手机走GPRS进行测试,这个内部的IP肯定是不行的,需要公网IP
lvlin1980 2010-02-25
  • 打赏
  • 举报
回复
http://192.168.8.70/mig-mobile-war/receive 为内部测试用wap站点

7,660

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧