/// <summary> /// 请求语义理解 /// </summary> /// <param name="userName">公众号</param> /// <param name="json">请求json数据</param> /// <returns>返回语义理解应答;如果请求失败,返回null。</returns> private static BaseReply Query(string userName, string json) { string responseContent = HttpHelper.RequestResponseContent(urlForQuerying, userName, null, httpMethodForQuerying, json); if (string.IsNullOrWhiteSpace(responseContent)) { return(null); } else { return(BaseReply.ParseObject(JObject.Parse(responseContent))); } }
internal static BaseReply ParseObject(JObject jo) { BaseReply reply = new BaseReply(); reply.Parse(jo); if (reply.IsSuccess && reply.type.HasValue) { switch (reply.type.Value) { case ServiceTypeEnum.restaurant: reply = Utility.Parse <RestaurantReply>(jo); break; case ServiceTypeEnum.map: reply = Utility.Parse <MapReply>(jo); break; case ServiceTypeEnum.nearby: reply = Utility.Parse <NearbyReply>(jo); break; case ServiceTypeEnum.coupon: reply = Utility.Parse <CouponReply>(jo); break; case ServiceTypeEnum.hotel: reply = Utility.Parse <HotelReply>(jo); break; case ServiceTypeEnum.travel: reply = Utility.Parse <TravelReply>(jo); break; case ServiceTypeEnum.flight: reply = Utility.Parse <FlightReply>(jo); break; case ServiceTypeEnum.train: reply = Utility.Parse <TrainReply>(jo); break; case ServiceTypeEnum.movie: reply = Utility.Parse <MovieReply>(jo); break; case ServiceTypeEnum.music: reply = Utility.Parse <MusicReply>(jo); break; case ServiceTypeEnum.video: reply = Utility.Parse <VideoReply>(jo); break; case ServiceTypeEnum.novel: reply = Utility.Parse <NovelReply>(jo); break; case ServiceTypeEnum.weather: reply = Utility.Parse <WeatherReply>(jo); break; case ServiceTypeEnum.stock: reply = Utility.Parse <StockReply>(jo); break; case ServiceTypeEnum.remind: reply = Utility.Parse <RemindReply>(jo); break; case ServiceTypeEnum.telephone: reply = Utility.Parse <TelephoneReply>(jo); break; case ServiceTypeEnum.cookbook: reply = Utility.Parse <CookbookReply>(jo); break; case ServiceTypeEnum.baike: reply = Utility.Parse <BaikeReply>(jo); break; case ServiceTypeEnum.news: reply = Utility.Parse <NewsReply>(jo); break; case ServiceTypeEnum.tv: reply = Utility.Parse <TvReply>(jo); break; case ServiceTypeEnum.instruction: reply = Utility.Parse <InstructionReply>(jo); break; case ServiceTypeEnum.tv_instruction: reply = Utility.Parse <TvInstructionReply>(jo); break; case ServiceTypeEnum.car_instruction: reply = Utility.Parse <CarInstructionReply>(jo); break; case ServiceTypeEnum.app: reply = Utility.Parse <AppReply>(jo); break; case ServiceTypeEnum.website: reply = Utility.Parse <WebsiteReply>(jo); break; case ServiceTypeEnum.search: reply = Utility.Parse <SearchReply>(jo); break; } } return(reply); }