當你在使用C#的HttpClient進行SOAP請求時,確保你的程式碼類似於以下示例:
using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { try { // 建立HttpClient例項 using (HttpClient client = new HttpClient()) { // 構造SOAP請求訊息 string soapRequest = @"<?xml version=""1.0"" encoding=""utf-8""?> <soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:tem=""http://tempuri.org/""> <soap:Header/> <soap:Body> <tem:YourSOAPRequestHere/> </soap:Body> </soap:Envelope>"; // 設定請求內容型別為SOAP HttpContent content = new StringContent(soapRequest, Encoding.UTF8, "text/xml"); // 傳送SOAP請求並獲取響應 HttpResponseMessage response = await client.PostAsync("YourSOAPServiceEndpointHere", content); // 檢查響應狀態 if (response.IsSuccessStatusCode) { // 處理成功響應 string soapResponse = await response.Content.ReadAsStringAsync(); Console.WriteLine("SOAP Response: " + soapResponse); } else { // 處理錯誤響應 Console.WriteLine("Error: " + response.StatusCode); } } } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); } } }
在這個示例中,你需要替換以下部分:
<tem:YourSOAPRequestHere/>
:將其替換為你的SOAP請求體。"YourSOAPServiceEndpointHere"
:將其替換為你的SOAP服務的端點URL。
確保SOAP請求的格式和內容正確,以及替換正確的服務端點URL,然後執行程式碼以傳送SOAP請求。如果服務端返回500 Internal Server Error錯誤,你需要根據之前提到的可能原因進行進一步排查。