1

我想測試我的web api,但我無法將圖像作爲字節數組發佈。我該怎麼做?我正在使用文件上傳參數,並指定內容類型的應用程序/八位字節流,但我得到415不支持的媒體類型。我怎樣才能發佈圖像作爲字節數組?如何在Visual Studio中以字節數組形式發佈圖像webtest

這裏是我的要求:

enter image description here

而且表單提交參數屬性:

enter image description here

這裏是我的網頁API POST方法:

enter image description here

這是我WebTest的請求日誌:

enter image description here

編輯: @nick_w有很大的答案,但我找到了另一種方式。我從我的webtest文件生成代碼。正確的測試請求應,如下所示:

WebTestRequest request2 = new WebTestRequest("http://url/api/SendStream"); 
request2.Method = "POST"; 
request2.Headers.Add(new WebTestRequestHeader("Content-Type", "application/octet-stream")); 
request2.QueryStringParameters.Add("JobId", this.Context["JobId"].ToString(), false, false); 

FileStream oFileStream = new FileStream("4_e.jpg", FileMode.Open, FileAccess.Read); 
byte[] bytes = new byte[oFileStream.Length]; 
oFileStream.Read(bytes, 0, System.Convert.ToInt32(oFileStream.Length)); 
oFileStream.Close(); 

BinaryHttpBody request2Body = new BinaryHttpBody(); 
request2Body.ContentType = "application/octet-stream"; 
request2Body.Data = bytes; 
request2.Body = request2Body; 
request2.SendChunked = true; 
request2.Timeout = 10000000; 

yield return request2; 
request2 = null; 
+0

嗨,是否有可能與Web請求一起添加表單數據?我面臨的問題是,在服務器上嘗試Request.Files [「SomeName」]時,它返回null。 – 2017-04-06 07:59:42

回答

1

我希望您有問題結合流參數爲字節數組。基於信息發現herethis問題,嘗試改變你的方法是這樣的:

public async Task<ResponseEntity<SendStreamResponse>> Post([FromUri]int jobId) 
{ 
    byte[] stream = await Request.Content.ReadAsByteArrayAsync(); 

    return await SendStreamAsync(jobId, stream); 
} 
+0

感謝您的關注。我被發現了另一種方式來做到這一點,但我接受你的解決方案作爲正確答案。 – 2014-10-09 09:16:48

相關問題