HttpClient 進行soap請求

摩诘發表於2024-05-04

當你在使用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錯誤,你需要根據之前提到的可能原因進行進一步排查。

相關文章