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里新建了名为photosContainer

  

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

  

[SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码的更多相关文章

  1. [SDK2.2]Windows Azure Storage (15) 使用WCF服务,将本地图片上传至Azure Storage (上) 服务器端代码

    <Windows Azure Platform 系列文章目录> 这几天工作上的内容,把项目文件和源代码拿出来给大家分享下. 源代码下载:Part1 Part2 Part3 我们在写WEB服 ...

  2. [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  3. [New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  4. [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  5. [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)

    <Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...

  6. [New Portal]Windows Azure Virtual Machine (15) 在本地制作数据文件VHD并上传至Azure(2)

    <Windows Azure Platform 系列文章目录> 在上一章内容里,我们已经将包含有OFFICE2013 ISO安装文件的VHD上传至Azure Blob Storage中了. ...

  7. Azure开发者任务之七:在Azure托管服务中托管WCF服务角色

    在一个托管服务中托管一个WCF服务角色和托管一个ASP.Net Web Role基本类似. 在上一篇文章中,我们学习了如何使用WCF Service Web Role. 在本文中,我会对上一篇文章进行 ...

  8. 准备好要上传到 Azure 的 Windows VHD 或 VHDX

    在将 Windows 虚拟机 (VM) 从本地上传到 Azure 之前,必须准备好虚拟硬盘(VHD 或 VHDX). Azure 仅支持采用 VHD 文件格式且具有固定大小磁盘的第 1 代 VM. V ...

  9. 超大文件上传到Azure Linux虚拟机最佳实践

    客户在实际进行迁移的时候,往往碰到需要将本地数据中心的超大文件,比如单个200GB的文件,或者总共1TB的无数文件上传到Azure上的情况,尤其是传到Azure的Linux虚拟机的场景,这种场景包括: ...

随机推荐

  1. EditText键盘弹出时,会将布局底部的导航条顶上去(解决方法之一)

    这只是其中一种方法android:windowSoftInputMode有很多属性可以添加,必须是一个state...|ajust... 我只是觉得这种比较好用 在项目的AndroidManifest ...

  2. POJ No.3617【B008】

    [B007]Best Cow Line[难度B]———————————————————————————————————————————————— [Description    支持原版从我做起!!! ...

  3. 如何卸载重装docker?

    http://blog.csdn.net/yangzhenping/article/details/43671843

  4. Python爬虫学习(7):浙大软院网号嗅探

    软院这边网速是挺不错的,而且在宿舍和实验室都是可以通过学号直接登陆的上网的,但是..有的时候实验室的台式机需要一个网号,笔记本需要一个网号,或者再加上一个路由器需要一个,然后,感觉网号托托的不够呀.刚 ...

  5. selenium:org.openqa.selenium.WebDriverException: f.QueryInterface is not a function

    今天用selenium2遇到问题 org.openqa.selenium.WebDriverException: f.QueryInterface is not a function 查了好久最后终于 ...

  6. obj转json

    .js模型(JSON)的获取 方法一: 1.安装Python插件.安装完后配置环境变量,path中添加Python路径. 2.找到three.js\utils\converters\obj\conve ...

  7. C++-Qt【2】-实现一个简单的记事本

    用Qt实现一个简单的记事本: #include "helloqt.h" #include <qfiledialog.h> #include <qfile.h> ...

  8. 2016-2-1 Servlet细节

    Servlet的一些细节(韩顺平老师视频讲解)(1)由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序想要被外界访问,必须把servlet程序映射到一个URL地址上.这个工作在 ...

  9. docker入门-学习笔记

    docker可以类比成window下的VMware或者virtualbox软件.docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜 ...

  10. R语言内存管理

    http://www.cnblogs.com/cloudtj/articles/5478281.html