> For the complete documentation index, see [llms.txt](https://johch3n611u.gitbook.io/c50108/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://johch3n611u.gitbook.io/c50108/ju-li-cheng-bei/201905/2019-0524.md).

# 2019/0524/WebApi異質程式連線方式&第九次專題報告\_循序圖

## WebApi異質程式連線方式

優點擴充性大。

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs1ilNlvXtLYe4_3S8%2Fimage.png?alt=media\&token=7707cee9-144e-4607-b761-d21745153beb)

控制設備人機介面

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs1pFwE6jSTB791_Sl%2Fimage.png?alt=media\&token=f3dac1fd-1a49-46e7-beb8-70a9849b7d8f)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs1vP4r07kj0HkVfxc%2Fimage.png?alt=media\&token=32a1bfa2-8b27-40e4-802c-f334becc14ca)

引入using System.Net.Http;

ASP是平台 不是程式語言

HttpClient client = new HttpClient();

client.BaseAddress = new Uri("<http://10.10.3.189>");

首先 用物件告訴它伺服器位置

接著用 HttpResponseMesssage 物件&#x20;

非同步存取GetAsync ( 類似 ajax 方法

去要求結果

接著寫一個範例model

然後用IEnumerable實現&#x20;

讀jason要下載插件

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs22WRttYgwST4i1A3%2Fimage.png?alt=media\&token=1cd39bad-90b7-464c-ac8b-e41590a3acf6)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs27iYsk3kcLEYwjH_%2Fimage.png?alt=media\&token=bf595170-e142-4993-9678-0e58ac2fe7ae)

Mic nugget 就像 github一樣 有差件就直接裝

Winform早期對josn沒有資源 ( josn近期才紅

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs2Eq4WDlTWVf52y83%2Fimage.png?alt=media\&token=bdfd6e2c-59b5-401f-9bab-bcdbc88480f4)

System.net.http 也要更新套件

formatting.

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs2LIzaErh6lkYSPLb%2Fimage.png?alt=media\&token=3a9eb2bf-4718-485b-aba3-8d286edca138)

IEnumerable泛型介面用來塞值

然後用非同步方法把資料再塞到 data 裡面

以供迴圈一筆筆item讀出

感覺很多物件不會用，要去看ＭＳＤＮ看用法

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs2ilOOgwisQQsIFPn%2Fimage.png?alt=media\&token=1a805912-3126-4c50-bc0b-2179bf0ce01f)

＃＃＃

```
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Http;


namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://10.10.3.189");

            HttpResponseMessage resp = client.GetAsync("http://10.10.3.189/api/student").Result;
            IEnumerable<Student> data = null;

            data = resp.Content.ReadAsAsync<IEnumerable<Student>>().Result;
            foreach(var item in data)
            {
                listBox1.Items.Add("學號:"+item.學號+"姓名:"+item.姓名+"電話:"+item.電話+"性別:"+item.性別+"生日:"+item.生日);
            }



        }
        public class Student
        {
            public string 學號 { get; set; }
            public string 姓名 { get; set; }
            public string 電話 { get; set; }
            public string 性別 { get; set; }
            public string 生日 { get; set; }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
        }
    }
}

```

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs-1MhcMRC9OZEkPFq%2F-Lfs2_mtGkfgSiYtcy4o%2Fimage.png?alt=media\&token=65cc50f8-c6d8-4ced-aada-84eaf4343655)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-Lfs3b8Vh3D2P1nBgL5S%2F-Lfs3oUve_QHdhVe9mAU%2Fimage.png?alt=media\&token=8beb4da8-2a07-48be-a8a7-dbe2c397526a)

### 爬蟲補充

其實是爬資料的程式邏輯就叫爬蟲而不是指某個語言 Python 強就是不用管階層直接讀取 後設資料metadata 但是如我有階層用javascrip或perl

## 下午第九次專題報告 循序圖

此次不算在實際報告內，主要是要看我們有沒有寫錯

## 補充

程式設計師匠員 費氏數列 貪婪演算法 能解決甚麼問題 ? 知道能解決問題就是 師 知道但不知道能怎麼用 那就是匠 連費氏數列都不知道 只能跟著code的就是 員

統計 會計 經濟 人生必要
