C++中利用WebService下载文件
C#写的WebService读取文件到byte[]和读取文件内容到string,代码如下:
[WebMethod]
public byte[] dowloadFile()
{
FileStreamreader = null;
stringfilePath = "C:/Inetpub/wwwroot/ws/wrar38b2sc.exe";
try
{
reader = new FileStream(filePath, FileMode.Open,FileAccess.Read);
byte[] bytes = new byte[reader.Length];
reader.Read(bytes, 0, Convert.ToInt32(reader.Length));
reader.Close();
return bytes;
}
catch(Exception ex)
{
throw ex;
}
finally
{
reader.Close();
}
}
[WebMethod]
public string ReadFileToString()
{
StreamReader sr =File.OpenText("C:/Inetpub/wwwroot/ws/test.txt");
StringBuilder sb = new StringBuilder();
while(!sr.EndOfStream)
{
sb.Append(sr.ReadLine());
}
sr.Close();
returnsb.ToString();
}
C++中调用WebService下载文件
//在工程中添加web引用,添加成功后,既可以编写代码如下
#include "stdafx.h"
#include "WebService.h"
#include <comdef.h>
using namespace Service;
using namespace std;
//调用返回值是字符串类型的WebService方法
void ReadFileToString()
{
CoInitialize(NULL);
HRESULT hr =S_OK;
BSTR hiResult;
CService*myService = new CService; //代理对象,这个对象能从类视图中看到
//myService->SetUrl(L"http://192.168.1.158/ws/Service.asmx");
hr =myService->ReadFileToString(&hiResult);
_bstr_t bb =hiResult;
char* c = bb;
if(FAILED(hr))
{
printf("ReadFileToString调用失败\n");
}
else
{
printf("ReadFileToString调用结果:%s\n",c);
}
SysFreeString(hiResult);
delete myService;
CoUninitialize();
}
//调用返回值是byte[]类型的WebService方法,并转成对应文件
void dowloadFile()
{
//当下来的文件名称,因为WebService方法只返回了文件内容,没有文件名称
//
char *fileName = "wrar38b2sc.exe";
CoInitialize(NULL);
HRESULT hr =S_OK;
ATLSOAP_BLOB hiResult;
CService*myService = new CService; //代理对象,这个对象能从类视图中看到
//发布之后的WebSerivce地址,可以写,也可以不写,我在不写的情况下执行成功
//myService->SetUrl(L"http://192.168.1.158/ws/Service.asmx");
hr =myService->dowloadFile(&hiResult);
unsigned char* c= hiResult.data;
if(FAILED(hr))
{
printf("dowloadFile调用失败\n");
}
else
{
printf("dowloadFile调用结果:%s\n",c);
}
FILE*fp;
fp = fopen(fileName, (const char*)("wb"));
fwrite(hiResult.data, hiResult.size, 1,fp);
free(hiResult.data);
fclose(fp);
delete myService;
CoUninitialize();
//执行文件
WinExec(fileName, SW_SHOW);
}
C++中利用WebService下载文件相关推荐
- ps快捷图标在哪个文件夹_在PS中制作一个下载文件夹的图标
在PS中制作一个下载文件夹的图标 出处:多特软件站 时间:2011-03-17 人气:1287我要提问我来说两句 核心提示:在这个教程里,我们将介绍到如何在PS中运用不同的形状和反射制作一个下载文 ...
- 在IE中打开或下载文件
在IE中打开或下载文件 response.reset(); response.setContentType("application/vnd.ms-excel;charset=utf-8&q ...
- SpringBoot实现利用浏览器下载文件
SpringBoot实现利用浏览器下载文件 @RestController @RequestMapping("file") @Api(tags = "下载文件" ...
- 在QT中采用多线程下载文件
在QT中采用多线程下载文件 这里的线程是指下载的通道(和操作系统中的线程不一样),一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道.当服务器提供下载服务 时,使用下载者是共享带宽的, ...
- 自动从mysql下载文件到powerbi_关于在Power Query和Power BI中从网页下载文件的小提示...
从网络下载数据时,通常最好是从专门为机器对机器通信而设计的API中获取数据,而不是从屏幕上实际可见的站点中获取数据.下载不仅通常更快,而且还常常获得更多非常有用的附加参数.在本文中,我将向您展示如何 ...
- 如何利用Ajax下载文件
Ajax下载无弹出框--原因:Ajax只能返回String类型的数据 一.当前做法: 利用ajax普通的异步请求下载的Controller,传送参数: $.ajax({type: 'POST',url ...
- 利用curl下载文件(进度条显示) 代码片段
在项目中需要用到程序更新的功能,同事介绍说是curl中的开发库很不错,于是下载这个包测试了一下,确实不错.准备正式用到项目中,以下一个例子用于从互联网上抓取一个文件下载到本地,并加上进度条显示,做得挺 ...
- Windows 8中IE10无法下载文件的解决方法
从Windows 7以升级的方式安装Windows 8后,发现使用IE10出现无法下载文件的问题.点击网页的中下载链接IE10没有任何反应. 然后单击界面右上角的"工具"--&qu ...
- 实现在 .net 中使用 HttpClient 下载文件时显示进度
在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...
最新文章
- C语言的单链表实现队列
- ABP入门系列(7)——分页实现
- 函数式编程语言python-写 Python 代码不可不知的函数式编程技术
- HTML5 之前的视频播放格式
- 咖啡馆的故事:FTP, RMI , XML-RPC, SOAP, REST一网打尽
- 微信开发学习日记(六):weiphp框架
- Kuberentes-入门
- S_ISREG等几个常见的宏(转)
- 如何忽略SVN目录?
- 毕业论文的编辑与排版大学计算机,大学毕业论文排版技巧
- 程序员如何实现“财务自由”?反正不是靠天天加班就能的!
- Kubeflow 部署采坑记录
- 固定资产管理系统 概要说明书说明书
- “限时分享“ 本地80个小游戏 HTML+CSS+JS源码分享
- Zeppelin Job monitor打开
- 效率神器工具,看这篇就够了!
- 阿里旗下,豆瓣等滑块验证码解决问题
- c#控件listview
- 研究区域内测高卫星数据选取(pass)--以T/P-Jason1/2/3为例
- 【项目源码】JSP超市积分管理系统源码下载
热门文章
- 对于出差的看法_我对于挑选背包的一些小建议
- 找不到java.vbs_无法找到脚本*.VBS的脚本引擎解决办法
- 《STL源码剖析》--知识点
- win7-X64下用VM安装linux系统CentOS
- 【深度学习】单位高斯化
- 计算机视觉、机器学习相关领域论文和源代码大集合
- mysql dba系统学习(16)mysql的mysqldump备份
- 通过索引优化含ORDER BY的MySQL语句
- CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
- Coursera课程Python for everyone:Quiz: Object Oriented Programming