【发布时间】:2021-07-05 20:37:49
【问题描述】:
我正在尝试使用 New York Times Books API,我必须使用 ExpandoObject 在我的函数处理程序中返回它,但我很难弄清楚如何将信息转换为 ExpandoObject。现在,当我尝试在模拟 lambda 测试工具中运行它时,它会打印出“无法找到方法 FunctionHandler”而不是 book 对象。任何建议都会很棒。
namespace newyorktimes
{
public class Function
{
public static readonly HttpClient client = new HttpClient();
static async Task<ExpandoObject> FunctionHandler(string input, ILambdaContext context)
{
string newYorkApi = string.Format("https://api.nytimes.com/svc/books/v3/lists/current/hardcover-fiction.json?api-key=Kz6lZl5qkn6WrGSwQLing2HW7SsjTP0p");
WebRequest requestObjGet = WebRequest.Create(newYorkApi);
requestObjGet.Method = "GET";
HttpWebResponse responseObjGet = null;
responseObjGet = (HttpWebResponse)requestObjGet.GetResponse();
dynamic Object = new ExpandoObject();
Object.List = responseObjGet;
HttpResponseMessage response = await client.GetAsync(newYorkApi);
return Object;
}
}
}
【问题讨论】:
-
所以你同时使用
WebRequest和HttpClient?摆脱WebRequest代码。所有的。这是遗产。在client.GetAsync代码下,添加var myDynamicObject = response.Content.ReadAsAsync<dynamic>();即可读取:var value = myDynamicObject.whateverPropertyYouWantToRead;
标签: c# aws-lambda async-await webapi expandoobject