[SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码
《Windows Azure Platform 系列文章目录》
前一章我们完成了服务器端的代码,并且已经发布到了Windows Azure云端。
本章我们将实现客户端的代码,客户端这里我们使用的是Windows Form。
1.我们用管理员身份,运行VS2013
2.新建项目类型为Windows Form Application,并将项目名称修改为LeiAzureClient
3.本章需要使用HttpClient类来调用WCF,需要进行相关的配置:
点击Project LeiAzureClient,右键,选择Manage NuGet Packages。如下图

4.在弹出的窗口里,查询"Microsoft HTTP Client Libraries",查询完毕后,点击Install

5.安装完毕后,我们回到项目文件的Form1,在窗口里增加一个按钮,并设置Text为UploadPic

6.在Form1.cs的引用内容如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; using System.Net.Http;
using System.Net.Http.Headers;
using System.IO;
7.增加如下代码:
string urlPrefix = "http://leiazureservice.cloudapp.net/service1.svc";
private void button1_Click(object sender, EventArgs e)
{
string uriString = urlPrefix + @"/UploadPic"; using (HttpClient client = new HttpClient())
{
//Please copy file to C:\
var fs = new FileStream(@"c:\\WP7.jpg", FileMode.Open, FileAccess.Read); var ms = new MemoryStream();
fs.CopyTo(ms); ByteArrayContent arrayContent = new ByteArrayContent(ms.ToArray());
arrayContent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json")); var response = client.PostAsync(new Uri(uriString, UriKind.Absolute), arrayContent).Result; //lblResult.Text = resp.ToString();
if (response.IsSuccessStatusCode)
{
//will return Uploaded GUID
string picName = response.Content.ReadAsStringAsync().Result.ToString(); //Please check the Upload Photos URL AT
//http://leiwcfstorage.blob.core.windows.net/photos/{GUID}.jpg
//e.g. http://leiwcfstorage.blob.core.windows.net/photos/39c51e48-e758-8697-d402-8df45f071d40.jpg
} }
}
在上面的代码中,我们实现以下功能:
1)指定Azure WCF URL
2)将本地已经存在的C:\WP7.jpg文件上传至Azure Storage
3)如果服务器端的response.IsSuccessStatusCode返回True,则调用WCF成功
4)response.Content.ReadAsStringAsync().Result.ToString();将会返回服务器端的结果
8.我们执行Windows Form工程,点击UploadPic按钮,查看response.IsSuccessStatusCode返回结果
如果返回结果为Ture,我们打开IE浏览器,查看到leiwcfstorage里新建了名为photos的Container

9.点击上图photos,我们可以查看到上传成功的图片。如下图:

[SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码的更多相关文章
- [SDK2.2]Windows Azure Storage (15) 使用WCF服务,将本地图片上传至Azure Storage (上) 服务器端代码
<Windows Azure Platform 系列文章目录> 这几天工作上的内容,把项目文件和源代码拿出来给大家分享下. 源代码下载:Part1 Part2 Part3 我们在写WEB服 ...
- [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...
- [New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...
- [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...
- [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)
<Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...
- [New Portal]Windows Azure Virtual Machine (15) 在本地制作数据文件VHD并上传至Azure(2)
<Windows Azure Platform 系列文章目录> 在上一章内容里,我们已经将包含有OFFICE2013 ISO安装文件的VHD上传至Azure Blob Storage中了. ...
- Azure开发者任务之七:在Azure托管服务中托管WCF服务角色
在一个托管服务中托管一个WCF服务角色和托管一个ASP.Net Web Role基本类似. 在上一篇文章中,我们学习了如何使用WCF Service Web Role. 在本文中,我会对上一篇文章进行 ...
- 准备好要上传到 Azure 的 Windows VHD 或 VHDX
在将 Windows 虚拟机 (VM) 从本地上传到 Azure 之前,必须准备好虚拟硬盘(VHD 或 VHDX). Azure 仅支持采用 VHD 文件格式且具有固定大小磁盘的第 1 代 VM. V ...
- 超大文件上传到Azure Linux虚拟机最佳实践
客户在实际进行迁移的时候,往往碰到需要将本地数据中心的超大文件,比如单个200GB的文件,或者总共1TB的无数文件上传到Azure上的情况,尤其是传到Azure的Linux虚拟机的场景,这种场景包括: ...
随机推荐
- Asp.Net中使用OpenRowSet操作Excel表,导入Sql Server(实例)
有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎). Jet 引擎大家都很熟悉,可 ...
- Hadoop 全分布模式 平台搭建
现将博客搬家至CSDN,博主改去CSDN玩玩~ 传送门:http://blog.csdn.net/sinat_28177969/article/details/54138163 Ps:主要答疑区在本帖 ...
- 【多线程】java多线程 测试例子 详解wait() sleep() notify() start() join()方法 等
java实现多线程,有两种方法: 1>实现多线程,继承Thread,资源不能共享 2>实现多线程 实现Runnable接口,可以实现资源共享 *wait()方法 在哪个线程中调用 则当前 ...
- 使用Packet Sniffer抓包和分析(z-stack协议)
以下内容仅是自己学习总结,可能会有错误,有发现问题的欢迎指正(图片可以自己放大,还是比较清晰的). 1.协调器上电,其他设备均不上电,抓包如下: 通过观察可以发现,协调器建立网络成功后,会以15秒为周 ...
- JS应用,表单上的一些东西
例: <body> <form>我的生日是哪一年? <input type="text" value="" id="t1 ...
- adt_sdk_tools介绍
draw9patch.bat hierarchyviewer.bat traceview.bat
- Vue - 实例
1.实例属性介绍如下图所示: 具体介绍如下: A.$parent:访问当前组件的父实例 B.$root:访问当前组件的根实例,要是没有的话,则是自己本身 C.$children:访问当前组件实例的直接 ...
- 前端工具 & git笔记
git diff (working dir to INDEX ) git diff --cached (INDEX to HEAD) git diff HEAD (working dir t ...
- WP8解析JSON格式(使用Newtonsoft.Json包)
DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式. 这里举一个简单的解析JSON格式的例子(更多JSON操作): { "response&q ...
- bzoj1412最小割
太羞耻了,m n写反了(主要是样例n m相等) 建图方法比较高(ji)端(chu),对于可以加栅栏的地方连上1的边,然后求最小割即可 为了让代码优(suo)美(duan),我写了一个check,避免多 ...