【发布时间】:2017-08-29 22:16:51
【问题描述】:
我正在尝试通过their API 发送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 的功能时无法设置作业的名称。
【问题讨论】:
-
假设它一直在等待响应,您是否使用 Fiddler(或任何其他工具)来比较两个请求的标头(您的代码与 cUrl?
标签: c# .net rest selenium-webdriver remotewebdriver