如何使用JavaScript从ASP.NET核心Web应用程序获取JSON信息

问题描述 投票:0回答:1

我一直在使用eBay查找API一段时间,它按预期的方式工作,我已经使用JavaScript对其进行了实现,如它们的文档所示。最近,它无处不在停止工作,我不知道这是什么问题。

我使用邮递员检查了同一通电话,一切正常。当我在php或C#中进行相同的调用时,它也可以工作,所以我想也许eBay做了一些事情,而我只能从“后端”语言中获取信息:/? IDK ..因此,我创建了一个链接,该链接通过get调用从eBay蚂蚁获取信息,并使用get调用将其输出,当我尝试使用Javascript获取该数据时,它也失败了,该链接在邮递员或浏览器中也有效。

有人可以向我解释这里发生了什么,我的代码有问题吗? (它在过去的半年中一直没有问题。),那么它一定是eBay或IDK的东西。以及为什么我的链接不起作用,我将向您展示所有代码,以及使用浏览器调试模式的错误。

好的,我的JavaScript代码:

var urlp1 = "https://svcs.ebay.com/services/search/FindingService/v1";
    urlp1 += "?OPERATION-NAME=findItemsByKeywords";
    urlp1 += "&SERVICE-VERSION=1.0.0";
    urlp1 += "&SECURITY-APPNAME=myappname";
    urlp1 += "&GLOBAL-ID=EBAY-GB";
    urlp1 += "&RESPONSE-DATA-FORMAT=JSON";
    urlp1 += "&callback=pages1";
    urlp1 += "&REST-PAYLOAD";
    urlp1 += "&keywords=" + zodis;
    urlp1 += "&outputSelector(0)=PictureURLLarge";
    urlp1 += "&outputSelector(1)=StoreInfo";
    urlp1 += "&paginationInput.entriesPerPage=" + EPP;
    urlp1 += "&paginationInput.pageNumber=" + puslapis;
    urlp1 += "&itemFilter(0).name=Seller";
    urlp1 += "&itemFilter(0).value(0)=daviva16";
    urlp1 += "&itemFilter(0).value(1)=davivaltd";
    urlp1 += "&itemFilter(0).value(2)=davivastore";


ss=document.createElement('script'); 
ss.src= urlp1;
document.body.appendChild(ss);

回调函数为100%正常,http调用本身失败,我得到:“边缘调试器”

(响应正文为空)

<<

因此,我的第一个方法是以某种方式解决此问题。但是我不知道该怎么办,我尝试使用XMLHttpRequest和JQuery Ajax进行调用都没有成功。.

然后我使用asp.net core 2.1 C#建立了此链接

[HttpGet] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [Route("Public/Ebaycalaidaviva162")] public ActionResult<JObject> Ebaycalaidaviva162(string zodis, string kiekis, string puslapis) { string atsakas = ""; using (HttpClient client = new HttpClient()) { try { //Post http callas. HttpResponseMessage response = client.GetAsync("https://svcs.ebay.com/services/search/FindingService/v1?" + "OPERATION-NAME=findItemsIneBayStores" + "&SERVICE-VERSION=1.0.0" + "&SECURITY-APPNAME=myappname" + "&GLOBAL-ID=EBAY-GB" + "&storeName=daviva16" + "&RESPONSE-DATA-FORMAT=JSON" + "&outputSelector(0)=PictureURLLarge" + "&outputSelector(1)=StoreInfo" + "&keywords=" + zodis + "&paginationInput.entriesPerPage=" + kiekis + "&paginationInput.pageNumber=" + puslapis).Result; //nesekmes atveju error.. response.EnsureSuccessStatusCode(); //responsas to string string responseBody = response.Content.ReadAsStringAsync().Result; atsakas = responseBody; } catch (HttpRequestException e) { Console.WriteLine("\nException Caught!"); Console.WriteLine("Message :{0} ", e.Message); } } return JObject.Parse(atsakas); }

而且我也无法从此链接获取信息。“调用我的链接”

状态正常,但正文为空,当我再次在浏览器中打开此链接时,我得到了所有信息。“在浏览器中打开我的链接”

链接为:https://backend.daviva.lt/public/Ebaycalaidaviva162?zodis=part&kiekis=12&puslapis=1该链接目前处于可用状态,每天有5k的请求限制,因此,如果您愿意,可以进行测试。

我认为这个问题可能有非常简单的解决方案,但是我本人缺乏解决该问题的知识。

对我来说,如何解决无关紧要,您可以在APS.NET Core链接中进行更改,以便它可以与JavaScript调用一起使用,也可以更改JavaScript调用,等等。所有对我来说很重要,因此我可以使用javaScript获取Json数据..

谢谢!

我一直在使用eBay查找API一段时间,它按预期的方式工作,我已经使用JavaScript对其进行了实现,如它们的文档所示。最近,它无处不在停止工作,...

请使用以下代码。它的工作。

var response=new HttpClient().GetAsync("https://backend.daviva.lt/public/Ebaycalaidaviva162?zodis=part&kiekis=12&puslapis=1"); //responsas to string string responseBody = await response.Result.Content.ReadAsStringAsync();

javascript c# ajax ebay-api
1个回答
0
投票
请使用以下代码。它的工作。

var response=new HttpClient().GetAsync("https://backend.daviva.lt/public/Ebaycalaidaviva162?zodis=part&kiekis=12&puslapis=1"); //responsas to string string responseBody = await response.Result.Content.ReadAsStringAsync();

© www.soinside.com 2019 - 2024. All rights reserved.