0
我正在將一些python腳本轉換爲它的C#等價物。當我運行下面的腳本(使用請求模塊),服務器是高興,有一個與它沒有任何問題:C#相當於requests.post()函數
auth_header = {'Authorization': 'Bearer ' + access_token}
r = requests.post(api_url + '/v1/instances', headers=auth_header, json =params)
然而,當我運行下面的C#等價代碼,服務器返回「405不允許的方法「:
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(api_url);
client.DefaultRequestHeaders.Authorization = new
System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", access_token);
// Add an Accept header for JSON format.
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue(@"application/json"));
string jsonDumps = JsonConvert.SerializeObject(parameters);
var content = new StringContent(jsonDumps, Encoding.UTF8,@"application/json");
var postResult = client.PostAsync(@"v1/pipelines", content).Result; // ERROR:
//StatusCode: 405, ReasonPhrase: 'METHOD NOT ALLOWED'.
值得注意的是,有沒有問題,當我運行GET方法:
var response = client.GetAsync(@"v1/pipelines").Result;
我沒有訪問服務器代碼。我嘗試使用Fiddler(類似於線鯊魚)來查看Python代碼發送到服務器的內容,但是使用Fiddler導致python腳本無法正常工作,指出SSLError:CERTIFICATE_VERIFY_FAILED]。
我認爲你發佈到兩個不同的端點 - Python到/ v1 /實例和C#到/ v1 /管道。嘗試交換他們,看看會發生什麼。 – Gnat
哇!我不敢相信我犯了這樣一個小錯誤。我浪費了3天時間。它現在有效。請把你的評論作爲答案。 –
我們都去過那裏! :-)答案已發佈。 – Gnat