【发布时间】:2019-06-07 20:47:16
【问题描述】:
我正在尝试访问休息端点https://api.planet.com/auth/v1/experimental/public/users/authenticate。它在请求正文中期望 json。
我可以得到在 Postman 中工作的请求,但不能使用 c#。使用邮递员我会收到预期的无效电子邮件或密码消息,但无论我尝试如何使用我的代码,我都会收到“错误请求”。
这是发出请求的代码
private void Login()
{
try
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://api.planet.com/");
client.DefaultRequestHeaders.Accept.Clear();
//ClientDefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("*/*"));
Data.User user = new Data.User
{
email = "myemail@company.com",
password = "sdosadf"
};
var requestMessage = JsonConvert.SerializeObject(user);
var content = new StringContent(requestMessage, Encoding.UTF8, "application/json");
var response = client.PostAsync("auth/v1/experimental/public/users/authenticate", content).Result;
Console.WriteLine(response.ToString());
}
catch (WebException wex )
{
MessageBox.Show(wex.Message) ;
}
}
class User
{
public string email;
public string password;
}
【问题讨论】:
-
您是否尝试过为
MediaTypeWithQualityHeaderValue使用合适的值? -
你在设置代理吗?
-
@DavidG 是的,我已经尝试设置 //ClientDefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));但没有运气
-
@SenadMeškin 不,我没有考虑过,我现在就试试。
标签: c# rest dotnet-httpclient