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

      

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

      

  • 相关阅读:
    .TTableRegionMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    Cannot resolve com.google.zxing:javase:unknown
    为什么需要权限管理?
    spring boot 上传文件出错:org.springframework.web.multipart.MultipartException: Could not parse multipart s
    如何在windows上设置文件的默认打开方式
    如何将vscode设置为中文
    使用hutool工具类进行简单的excel导入和导出的工具类
    上传照片到本地服务器上(亲测有效)
    Centos 防火墙
    VirtualBox 安装增强工具
  • 原文地址:https://www.cnblogs.com/threestone/p/3401591.html
Copyright © 2020-2023  润新知