关于使用wininet进行文件上传的问题

windyloft 2009-03-04 02:52:59
想要实现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;
}
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eagerle01 2009-03-07
  • 打赏
  • 举报
回复
帮顶
zzz822163 2009-03-07
  • 打赏
  • 举报
回复
http://www.xiaozhou.net/cooldog/article.asp?id=57
http://topic.csdn.net/t/20020513/10/717685.html
不知道你代码对不对,还有是否有创建文件的权利?
windyloft 2009-03-04
  • 打赏
  • 举报
回复
都正常关闭了。
cnzdgs 2009-03-04
  • 打赏
  • 举报
回复
InternetCloseHandle正常关闭了吗?
windyloft 2009-03-04
  • 打赏
  • 举报
回复
现在这个问题已经解决了,原因是HttpOpenRequest的第三个参数应该是虚拟路径,而我写的是绝对路径。
但是现在又有了新的问题。
internetreadfile=InternetWriteFile(hRequest,buffer,sizeof(buffer),&dWritedNum);
已经成功调用了这个函数,但是实际的磁盘上并没有做成新文件?
cnzdgs 2009-03-04
  • 打赏
  • 举报
回复
没做过,猜一下。HttpOpenRequest的第3参数给"asd.xls"试试。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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