封裝微軟牛津計畫API客戶端

2021-07-10 13:16:57 字數 1934 閱讀 6495

本主題所有內容以軟認知服務為技術基礎

關於微軟人臉識別,請參閱

本節內容請先參閱微軟認知服務人臉api介面列表

##封裝微軟牛津計畫api客戶端

牛津計畫的api是由乙個基礎url、服務名稱、引數組成為的服務,大多是post(我還沒有完全看完),這些引數多是字串,但也有流格式(比如上傳什麼的),我們的projectoxfordclienthelper就是計畫將牛津api的實現進行封裝,為我們不同的apicontroller提供服務。

我們先定義一些基本的字段

private const string servicehost = "";

private const string key = "";

private httpclient client;

servicehost就是牛津的api,key你可以通過註冊牛津開發計畫來獲得,photofolder是保持我們需要上傳圖所在的位置。

我們在建構函式中初始化httpclient,為httpclient新增兩個必須的頭標識。

public projectoxfordclienthelper()

接下來,我們要實現兩種post的提交,一種是提交流引數,一種是提交字串引數

實現提交字串引數的post

}所謂的字串引數就是將實現fields的物件以json格式序列化,然後post給牛津api。

var jsonstr = newtonsoft.json.jsonconvert.serializeobject(body);

byte bytedata = encoding.utf8.getbytes(jsonstr);

所以要記得content的內容型別要定義為

那類似這些流檔案不能採用這個方法,所以我們過載了乙個方法

}看下引數,流格式的內容需要以byte陣列的方式進行傳遞,但實際的處理中沒有什麼太大的不同,如果傳遞的是byte陣列就直接處理,否則先序列化為byte陣列,但是要注意的是,流**的json的編碼是不同的,

我們再提供乙個幫助處理牛津api返回值的方法

android tcp客戶端 封裝

我感覺,簡單的tcp通訊網上應該容易搜到,但對tcp加密,以及tcp當做http通訊和接收推送時,就會有衝突吧。最後我封裝了它 這是tcp 部分 created by zhu on 2017 11 16.public classmyserviceextendsservice override pub...

Zookeeper Java客戶端API的使用

1.原生api 具體檢視下面github 2.zkclient zkclient是github上乙個開源的zookeeper客戶端。zkclient在zookeeper原生 api介面之上進行了包裝,是乙個更加易用的zookeeper客戶端。同時,zkclient在內部實現了諸如session超時重...

HDFS 客戶端入門 API

public class doitutils public class uploaddemo public class downdemo public class rename else 改名後的檔案 path path new path b.txt 將檔案移動到指定資料夾下 path path2 ...