我将一些python脚本转换为C#等效脚本。当我运行以下脚本(使用请求模块)时,服务器很高兴并且它没有问题:
auth_header = {'Authorization': 'Bearer ' + access_token}
r = requests.post(api_url + '/v1/instances', headers=auth_header, json =params)
但是,当我运行以下C#等效代码时,服务器返回" 405 METHOD NOT NOTOWED":
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(类似于wire shark)来查看python代码发送到服务器但是使用Fiddler导致python脚本无法正常工作,说明SSLError:CERTIFICATE_VERIFY_FAILED]。
答案 0 :(得分:1)
快速浏览一下,C#代码看起来是正确的。但是,我认为您要发布到两个不同的端点:Python到/ v1 / instances和C#到/ v1 / pipelines。尝试交换它们,看看会发生什么。