HttpClient 异步的 Post 调用

12 浏览
0 Comments

HttpClient 异步的 Post 调用

我正在尝试调用Windchill Odata REST服务。HTTP GET方法可以正常工作,但进行POST请求时无法按预期工作。我也不确定如何将所需参数传递给URL。任何建议将非常有帮助。

我正在尝试调用的URL是:

http://主机名/Windchill/servlet/odata/v3/ProdMgmt/Parts('OR:wt.part.WTPart:123456')/PTC.ProdMgmt.GetPartStructure?$expand=Components($select=PartName,PartNumber;$expand=PartUse($select=FindNumber,LineNumber,Quantity,Unit);$levels=1)

需要传递给URL的参数是('OR:wt.part.WTPart:123456')。我正在使用C# .NET进行此操作。

我的C#代码如下:

using (var client = new HttpClient())
{
  client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  var byteArray = Encoding.ASCII.GetBytes("abc:defg!");
  client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
  client.DefaultRequestHeaders.Add("CSRF_NONCE", a.NonceValue);
  var message = await client.PostAsync("主机名/Windchill/servlet/odata/v3/ProdMgmt/Parts('OR:wt.part.WTPart:123456')/PTC.ProdMgmt.GetPartStructure?$expand=Components($select=PartName,PartNumber;$expand=PartUse($select=FindNumber,LineNumber,Quantity,Unit);$levels=1)", null);
}

非常感谢任何示例或样本代码。

0