我想通过their API发送PUT
请求更新Saucelabs的作业。但是,下面的代码挂起,我不知道为什么。通过HttpClient发送PUT请求到Saucelabs没有响应
using (var client = new HttpClient())
{
var sessionId = Browser.Driver.GetSessionId();
var uri = new Uri($"https://saucelabs.com/rest/v1/{Configuration.SauceUserName}/jobs/{sessionId}");
var uriWithCred =
new UriBuilder(uri)
{
UserName = $"{Configuration.SauceUserName}",
Password = $"{Configuration.SauceAccessKey}"
}.Uri;
var payload = new StringContent($"{{\"name\":\"{TestMethodName}\"}}", Encoding.UTF8, "application/json");
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = uriWithCred,
Content = payload
};
var response = client.SendAsync(request).Result;
}
以下cUrl请求成功(当然是编辑凭据)。
curl -X PUT -s -u <username>:<access-key>
-d "{\"name\": \"test name\"}"
https://saucelabs.com/rest/v1/<username>/jobs/<job-id>
为什么这个请求挂起,我能做些什么,使之成功?
由于与问题无关的原因,在设置WebDriver的功能时,我无法设置作业的名称。
假设它挂在等待响应,你用菲德勒(或任何其他工具)对你的代码比较两个请求的报头(VS cUrl作者? – yonisha