想要实现http方式的文件上传功能,可是运行到HttpSendRequestEx的时候返回错误 errorcode = 12007[The server name could not be resolved]
请大家帮帮忙,我是整部明白了。以下是我的代码:
---------------------------------
HINTERNET hInternet = NULL;
HINTERNET internetopenurl;
DWORD byteread=0;
char buffer[100];
memset(buffer,0,100);hInternet = InternetOpen("aaa", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(hInternet == NULL)
{
return -1;
}HINTERNET hConnect = InternetConnect(hInternet,
"http://localhost:8080/Vss_WorkFlow",
8080,
"admin",
"",
INTERNET_SERVICE_HTTP,
0,
0);
if(hInternet == NULL) return -1;const char *FAcceptTypes = "*/*";
HINTERNET hRequest = HttpOpenRequest(hConnect, "PUT",
"http://localhost:8080/Vss_WorkFlow/asd.xls", // 想读取的文件的名称
"HTTP/1.0", // 使用的协议
NULL,
&FAcceptTypes,
INTERNET_FLAG_RELOAD, 0);
if(hRequest == NULL) return -1;INTERNET_BUFFERS inBuf;
memset(&inBuf, 0, sizeof(INTERNET_BUFFERSA));
inBuf.dwStructSize = sizeof(INTERNET_BUFFERSA);
inBuf.dwBufferTotal = 1000; BOOL bSendRequestEx = HttpSendRequestEx(hRequest, &inBuf, NULL, 0, 0);
if(FALSE == bSendRequestEx)
{
// 上面应该没有问题,就是运行到这里的时候过不去。
printf(fp, "GetLastError(%d)---------------\n", GetLastError());
return -1;
}
请大家帮帮忙,我是整部明白了。以下是我的代码:
---------------------------------
HINTERNET hInternet = NULL;
HINTERNET internetopenurl;
DWORD byteread=0;
char buffer[100];
memset(buffer,0,100);hInternet = InternetOpen("aaa", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(hInternet == NULL)
{
return -1;
}HINTERNET hConnect = InternetConnect(hInternet,
"http://localhost:8080/Vss_WorkFlow",
8080,
"admin",
"",
INTERNET_SERVICE_HTTP,
0,
0);
if(hInternet == NULL) return -1;const char *FAcceptTypes = "*/*";
HINTERNET hRequest = HttpOpenRequest(hConnect, "PUT",
"http://localhost:8080/Vss_WorkFlow/asd.xls", // 想读取的文件的名称
"HTTP/1.0", // 使用的协议
NULL,
&FAcceptTypes,
INTERNET_FLAG_RELOAD, 0);
if(hRequest == NULL) return -1;INTERNET_BUFFERS inBuf;
memset(&inBuf, 0, sizeof(INTERNET_BUFFERSA));
inBuf.dwStructSize = sizeof(INTERNET_BUFFERSA);
inBuf.dwBufferTotal = 1000; BOOL bSendRequestEx = HttpSendRequestEx(hRequest, &inBuf, NULL, 0, 0);
if(FALSE == bSendRequestEx)
{
// 上面应该没有问题,就是运行到这里的时候过不去。
printf(fp, "GetLastError(%d)---------------\n", GetLastError());
return -1;
}
但是现在又有了新的问题。
internetreadfile=InternetWriteFile(hRequest,buffer,sizeof(buffer),&dWritedNum);
已经成功调用了这个函数,但是实际的磁盘上并没有做成新文件?
http://topic.csdn.net/t/20020513/10/717685.html
不知道你代码对不对,还有是否有创建文件的权利?