我正在尝试调用API并从中获取响应。当我们有数据对象时,它可以正常工作。但是,如果数据对象为空,我就会遇到异常。请为这些问题建议解决方案
我的代码:
public static async Task<string> GetDimension(string serialNumber)
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Authorization", "Basic Y2NAdGVzdC5jaGFuZWwtY29ycC5jb206cGFzc3dvcmQ=");
client.DefaultRequestHeaders.Add("X-API-Key", "computer-vision");
client.DefaultRequestHeaders.Add("lang", "en");
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "5d8c7294fed64d009cadcaea2fc2dff0");
// string serialNumber = "18845681";
string uri = string.Format("https://int-apim.lpl-cloud.com/int/fshcatalog/serial/products/v1/fsh/serial/{0}?" + queryString, serialNumber);
var response = await client.GetAsync(uri);
string EmpResponse = string.Empty;
if (response.IsSuccessStatusCode)
{
EmpResponse = response.Content.ReadAsStringAsync().Result;
}
if (string.IsNullOrEmpty(EmpResponse) == true)
{
EmpResponse = "";
// True.
// Console.WriteLine("Null or empty");
}
var details = JObject.Parse(EmpResponse);
string photo = details["photo"].ToString();
string libelleColorisCommercial = details["libelleColorisCommercial"].ToString();
string codeArticle = details["codeArticle"].ToString();
string codeColorCommercial = details["codeColorisCommercial"].ToString();
string Param = codeArticle + codeColorCommercial;
if (string.IsNullOrEmpty(photo) == true)
{
photo = "";
// True.
// Console.WriteLine("Null or empty");
}
if (string.IsNullOrEmpty(libelleColorisCommercial) == true)
{
libelleColorisCommercial = "";
// True.
// Console.WriteLine("Null or empty");
}
if (string.IsNullOrEmpty(codeArticle) == true)
{
codeArticle = "";
// True.
// Console.WriteLine("Null or empty");
}
string uri2 = string.Format("https://int-apim.lpl-cloud.com/int/fshcatalog/product/products/v1/fsh/products/{0}?" + queryString, Param);
var response2 = await client.GetAsync(uri2);
string dimension = string.Empty;
if (response2.IsSuccessStatusCode)
{
dimension = response2.Content.ReadAsStringAsync().Result;
}
var dim = JObject.Parse(dimension);
string dimensioncode = dim["dimensionsCode"].ToString();
if (string.IsNullOrEmpty(dimensioncode) == true)
{
dimensioncode = "";
// True.
// Console.WriteLine("Null or empty");
}
else
{
}
//Session["photo"] = photo;
//Session["libelleColorisCommercial"] = libelleColorisCommercial;
//Session["dimensioncode"] = dimensioncode;
return dimensioncode;
}
这行代码var details = JObject.Parse(EmpResponse);
如果details对象为空,则抛出上述异常
任何人都可以在解决方法上显示一些解决方案。响应将受到高度赞赏