标签: request

我可以减少 Google Maps JavaScript API v3 中的请求量吗?

我给 2 个地点打电话。我从 xml 文件中获取某个位置的经度和经度。首先是最近的咖啡馆,然后是最近的学校。

$.get('https://maps.googleapis.com/maps/api/place/nearbysearch/xml?
location='+home_latitude+','+home_longtitude+'&rankby=distance&types=cafe&sensor=false&key=X',function(xml)
{
verander($(xml).find("result:first").find("geometry:first").find("location:first").find("lat").text(),$(xml).find("result:first").find("geometry:first").find("location:first").find("lng").text());
}
);

$.get('https://maps.googleapis.com/maps/api/place/nearbysearch/xml?
location='+home_latitude+','+home_longtitude+'&rankby=distance&types=school&sensor=false&key=X',function(xml)
{
verander($(xml).find("result:first").find("geometry:first").find("location:first").find("lat").text(),$(xml).find("result:first").find("geometry:first").find("location:first").find("lng").text());
}
);
Run Code Online (Sandbox Code Playgroud)

但正如您所看到的,我执行了函数 verander(latitude,longitude) 两次。

function verander(google_lat, google_lng)
  {
        var bryantPark = new google.maps.LatLng(google_lat, google_lng);
        var panoramaOptions = 
        {
            position:bryantPark,
            pov:
            {
                heading: 185,
                pitch:0,
                zoom:1,
            },
            panControl : false,
            streetViewControl : false,
            mapTypeControl: false,
            overviewMapControl: false   ,
            linksControl: false,
            addressControl:false,
            zoomControl : false,
        }
        map = new google.maps.StreetViewPanorama(document.getElementById("map_canvas"), panoramaOptions);
        map.setVisible(true);
  }
Run Code Online (Sandbox Code Playgroud)

是否可以仅在一个请求中推送这两个位置(也许通过数组)?我知道这听起来很愚蠢,但我真的想知道它们是否不是减少这些谷歌地图请求的后门。

FTR:这是对 Google 的请求:

在适用于 Maps API 的使用限制的背景下,什么构成“地图加载”?在以下情况下会发生单个地图加载:

  • A。当网页或应用程序加载时,使用 Maps JavaScript API(V2 或 …

performance google-maps request google-maps-api-3

2
推荐指数
1
解决办法
5480
查看次数

C# HttpClient 自定义标头每个请求

我注意到在修改HttpClient.DefaultRequestHeaders时使用 HttpClient不是线程安全的,但我想发出尽可能多的请求。每个请求我都需要一个自定义标头(另外两个标头始终相同)。URL也有点变化

  1. http://example.com/books/1234/readers/837
  2. http://example.com/books/854/readers/89
  3. http://example.com/books/29432/readers/238
  4. ... 很快

目前我正在为每个请求创建一个新的 HttpClient,但我觉得创建 10k+ HttpClients 不是这里的最佳选择。

我想制作一个带有 2 个 DefaultRequestHeaders 的静态 HttpClient,并为每个请求使用这个 HttpClient,但还要添加一个自定义标头。

我想尽快完成这个,所以如果你有别的东西,我会接受的。

        Parallel.ForEach(Requests, Request =>
        {
            var Client = new HttpClient();
            Client.DefaultRequestHeaders.Clear();
            Client.DefaultRequestHeaders.Add("Header1", "Value1");
            Client.DefaultRequestHeaders.Add("Header2", "Value2");
            Client.DefaultRequestHeaders.Add("Header3", "Value for exact this request");

            var response = Client.PutAsync(new Uri($"http://example.com/books/1234/readers/837"), null); //.Result (?)
            Client.Dispose();
        });
Run Code Online (Sandbox Code Playgroud)

c# header httpclient request

2
推荐指数
1
解决办法
2951
查看次数

如何修复 Node/Cheerio 中的“$(...).click is not a function”

我正在用 node.js 编写一个应用程序,它将导航到一个网站,单击网站上的一个按钮,然后从网站中提取某些数据。除了单击按钮方面外,一切都进行得很顺利。我似乎无法模拟按钮点击。我对此非常陌生,所以我很感激你们的任何建议!可悲的是,我已经在互联网上寻找解决此问题的方法,但一直找不到。

我已经使用.click().bind('click, ...)在.js文件中使用“要求”和“cheerio”。

我一直在使用也试图page.click()page.evaluate()在不同的.js文件使用“铬发射器”,“铬远程接口”和“人偶师”。

这是我的“请求”和“cheerio”文件的代码:

const request = require('request');
const cheerio = require('cheerio');

let p1 = {}, p2 = {}, p3 = {}, p4 = {}, p5 = {};

p1.name = 'TheJackal666';

p2.name = 'Naether Raviel';

p3.name = 'qman37';

p4.name = 'ranger51';

p5.name = 'fernanda12x';

const team = {1: p1, 2: p2, 3: p3, 4: p4, 5: p5};

for(var x in team){
        let url = 'https://na.op.gg/summoner/userName=' + 
team[x].name;

        request(url, (error, …
Run Code Online (Sandbox Code Playgroud)

javascript request node.js web-scraping cheerio

2
推荐指数
1
解决办法
3418
查看次数

Python 请求循环,如果状态码不是 200 则重试

我做了一个请求循环,不幸的是有时会发生服务器超时。这就是为什么我想首先检查状态代码,如果它不是 200,我想返回并重复上一个请求,直到状态代码为 200。代码示例如下所示:

for i in range(0, len(table)):
        var = table.iloc[i]
        url = 'http://example.request.com/var/'
        response = requests.get(url)
        if response.status_code == 200:
            data = response.json()
        else:
            "go back to response"
Run Code Online (Sandbox Code Playgroud)

我正在附加每个 i 的响应数据,因此只要响应代码为 200,我就想返回,然后继续循环中的下一个 i。有什么简单的解决办法吗?

python request python-requests

2
推荐指数
1
解决办法
4237
查看次数

签署我的请求时我做错了什么?AWS SignatureV4 和 PHP

我已经被这个问题困了两天了。我编写了一个 Python 脚本,它向 AWS Pinpoint 服务发出 PUT 请求。与许多其他 AWS 服务一样,Pinpoint 需要对请求进行签名验证,我设法在 Python 中处理了这一点。

现在我正在尝试将我的脚本翻译成 Symfony 的 PHP 服务。当我向 AWS pinpoint 运行我的第一个请求时,我得到以下信息:

我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。 此请求的规范字符串应该是\n'PUT\n/v1/apps/.../endpoints/...\n\ncontent-type:application/json\nhost:pinpoint.eu-west-1。 amazonaws.com\nx-amz-content-sha256:de98d86577f0e1...655e6de27154af1c05ab34\nx-amz-date:20191226T151542Z\nx-amz-security-token:IQoJ-agent...放大/1.1.2 反应原生 aws-amplify/1.1.2 反应原生回调\n\ncontent-type;host;x-amz-content-sha256;x-amz-date;x-amz-security-token; x-amz-user-agent\n0240a9479d0a66d74eaae42dc...95247aaa800fcbe5cf2

String-to-Sign 应该是 'AWS4-HMAC-SHA256\n20191226T151542Z\n20191226/eu-west-1/mobiletargeting/aws4_request\nb2c451534fe370503ecf4068b4912803e20191226T151542Z

所以我已经检查过我的规范字符串是否错误,这与 AWS 要求的完全相同。String-to-Sign 与 Canonical String 哈希不同。

这是我的标题功能

public function create_headers($data,\DateTime $time,$canonical_uri,$method,$to_api=null)
    {
        $amz_date = $time->format('Ymd\THis\Z');
        $date_stamp = $time->format('Ymd');
        $payload_hash = hash('sha256',$data);#utf8_encode($data));
        $canonical_querystring = "";
        $canonical_headers = 'content-type:' . $this->content_type . '\n' . 'host:' . $this->host . '\n' . 'x-amz-content-sha256:' . $payload_hash . '\n' . …
Run Code Online (Sandbox Code Playgroud)

php request signature amazon-web-services

2
推荐指数
1
解决办法
1014
查看次数

发布请求抛出 net::ERR_HTTP2_PROTOCOL_ERROR

使用对 API 的 post 请求时出现这 2 个错误(使用 chrome)

xhr.js:178 POST MY_API_URL net::ERR_HTTP2_PROTOCOL_ERROR createError.js:16 Uncaught (in promise) Error: Network Error at createError (createError.js:16) at XMLHttpRequest.handleError (xhr.js:83)

我正在做一个简单的 POST 请求(反应代码):

const postData = async()=>{
    let res = await Axios.post('/terrenos', {'idTerreno':'0'} );
    console.log( res.data );
}
Run Code Online (Sandbox Code Playgroud)

而在 API 方面,我只有这个用于调试(PHP 代码):

if( $_SERVER["REQUEST_METHOD"] === 'GET'){
    main($_GET);
}else if( $_SERVER["REQUEST_METHOD"] === 'POST'){
    echo(json_encode($_POST));
}
Run Code Online (Sandbox Code Playgroud)

当我不在正文中发送任何内容时,它工作得很好(它返回一个空数组)

const postData = async()=>{
    let res = await 
    Axios.post('https://gpgpy.000webhostapp.com/papaProject/API/v2/query.php');
    console.log( res.data );
}
Run Code Online (Sandbox Code Playgroud)

当我将邮递员用于相同的请求时,无论有没有身体,它也可以工作。

javascript php post request reactjs

2
推荐指数
1
解决办法
1527
查看次数

如何在承诺中设置反应钩子的值?

我从承诺中获取数据,我想将其设置在反应钩子中,它确实如此,但它会发出无限请求并重新呈现页面,我还希望填充一些特定的数据

const [rows, setRows] = useState([]);
useEffect(() => {
    async function fetchData() {
        myEmploiList({
            user: user.id
        }).then((data) => {
            //setRows(data);
            const newData = [];
            data.forEach((item, index) => {
                newData[index] = {
                    id: item._id,
                    name: item.name,
                    society: item.society
                };
                setRows(newData);
            });
        });
    }
    fetchData();
});
Run Code Online (Sandbox Code Playgroud)

javascript request promise reactjs react-hooks

2
推荐指数
1
解决办法
419
查看次数

剧作家无法拦截所有请求

const { webkit } = require('playwright');

(async () => {
  const browser = await webkit.launch({ headless: false });
  const context = await browser.newContext();
  const page = await context.newPage();

  // Log and continue all network requests
  page.route('**', route => {
    console.log(route.request());
    route.continue();
  });

  await page.goto('https://www.sahibinden.com');
  //await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

当我在隐身窗口中打开它并使用 fiddler 拦截时,我能够获得这些标题:

X-Client-SrcPort: 49784
Accept-Language: en-US,en;q=0.9
X-J3PopQvX-a: eRELp_ivj7vKEvBmbMRSG-kfU55GIHd5Wc4a06qtEa8-W4hUa90nd0GhKDAoOzTOE6nbdU270qt3pEYVVmFKgVTToiLUqAr9yF684URRjFEdbaPsZXZSQYAJBYyvVsSi_K44SKCEGPl3aAksgQ35gw27vJvvBuscZzVhLbW5PQgfeiMKVbRrWpbR5xHUuVtZ2WWJm7HboV5kXXpkiMPA5vOktA-g4mGZm_zh6ag-OMFmLSfnepSm4PEc=xUFop6_-RYgRLI020e8S8uXXWsuQR95QLXnPCQHvZ3yRFRBtHAG6j0natnjXAxodDcm2Z_tiq7H36uRojXmBVE6A=BwWr0j-cXmsXEuSiKPairOZ6lOskntyNSoE0mao=ge0YrWgZnvEWQIb8FPadYSSufxYmxuGVur0v-5RBRcw=VCk6e6d2sbMDmuvr6zR-F_T_A4K-q-8LlnXywUUfpqG-GInbAyExoE5QdJoRiI8IdTX5NHY0uzddRbfuV9ItOwwY-0iYSMgQ=Aqr=XLeqozjSV7r_Enq0FPcQjNklgG6unf=I3VMURNTQb42pvqWK5RSa-FAD3bTCp4a_OAV=Zx3cIV9JTsSpKKMmFo5q4PMPbj9boGSLSqORhvP95PwMAxyEeMUNbnorRlVOlKH3h2h2sH9rf768CgsXo-GMzCWwQXfoEuKGyl2vRQeP_rddkJ3RHuawS=Z38p69xNcjXr9J_zX4YVoAdXxN56Jm=Qo5K8Xsz3ndwSuvBJYnPXfXNr9Et80GYIjcx-TOkr5ZmPAbRIHkZVKacYvNG_utrkSQmn63IYYydikScedTdnUW5ky=gW3sliikzmZh-cRGaGIaA7FD5Un0Gc8TER6x_mKq-vL5nSuCOnHmzRTNBXZteNk8Gghe6V=ZnRNfCWFeiijdqPP0iPohDEhnjtA32h5vvyCgkx6UWBhAqSsU4IJWGPx8v9S3NtcBuYgTdexPHjnpYVF2CjufPFq0YVL5-di_ATRDfQktSh9gnBdYtIP9ejYLrq6kW6bBm5dxJkgGFD2aEz4bO2QEvoMJ=kuQGc34MBpAG2=PmtA9TErE0WfFftgec-sQfDFn2v4kerFl88C6lGdR=QQu3RBYOdW3V2ZDOONEmzXKAWQDpEZtBrID0Sb8mkQFLcOlbN28tcR8kpha_2E=DgBgLETJE_NqLs=60RdznfPKTcbGmrpBpIZGUKYGoqYzu7AHG-U9MtUAzPP-PVrgA=uOHqN_iFtPl_SCREmnCCLmihX=SsiMCGtaTqvw3RHLYhcUociEskbQh8a4wpniDSp5OM82AHGyrRJK0b29J_KzEgzeGlNn-CLTa=8aaJRfXIIBxHs9Jr6o9Q2DKuwKxvLJpN9kkSMLNbn9Q8R7NeeEeR9oECc9D8h8WjCGkCYJXIPtp-0hpRrlkvvF5ezZhFE0D=GewHdENPEj7CTjqfClVQ=gtzPQF6lG8UX9SKYKxOdyH-jKXJNp2KYWNFTWXS6ZHc56hsw9apvtbxuMciLZYjd4ZGFmLOpHsd7liyRk3QalSm0zxCnnOAL88S=VKDvdWm_qHkslUSEYOOznKY6wqfMlUUxIvRQISzWKY56ajlfyx0qEY6VHuiWbph2kwLGyuVZ6zwmO7RtVCiwp3poGfEnaA2ILv2IwjYm_BIcw8W2joV5G5LwkyEoeUquQWGg9EI_NEW4TO=wKOnmnwFI_f43k595lTHhiYCAwamNnFuiTXA4ZjE5J3S_O45altEdQCYJyJey2K5_iUa--qTmB3OLVZcDA05jN9TTer=-8BCZm=B9F=L=oHYSUlUC=TuzgBRH52I9BnRHDhLW8-U5yy-zYuoq55W-pboEVmlpIocbkE5A6v4gZkgxkLMKk9OzhOGNe7IgIZ=rzP7ocA0CfIKUj80anZlQj8FpVapjmpjWfJlxiZQ9oVcxZWWeSZ9ZKbrGBbx4kja_kjZeVhXOtH0MQLdyqtjIuPKK9pFkvpAOBRv4xrDPpZPOzi59F97zhc2IPhNlgEq9-Dvnl2w40xKRnjBS2cihGy_s2HI2Rf8HsrtHqrWuVtZ7clf2pEwHmdEzIr3aIHSwRzIma_ymwUZ3y4mPqs_d=JtpbqFqd6xykIT_=6Ftz_tqDC4xgTsNUL7-f57F45qpTw5QUNi7CpNUR=wvGhEOskiY2A60ID8IzGlz5hAu785vhseZHnv2fIl5KeH=I=2TH7wJGsUQ-=XMMzg5O8f940hyGJ-y4cHvWppYDK6J6LRvU-AR_Ojb4YgGj9DXgWIWCFrbiS0XY53O-_MvUfsLiURAmsfy5ReKw6-i=rTJ-kN_tf7xcOEbHNCVjFR=ZpJV6LIsI2S5loedjIRHWPhqVI5rJe-NXLs9bo53qnYsWFHbMonxaERtC2ZTYAhbWZglUGHAjv-hqvq22kCGb5fCte6Zb5brvE9CPI8Y8PZ7BCFfcbTpLOAesvHNAxJMaBUVhRGOoYVAL7tq5E-FVmH9L=bdbBgOAXR9s5lHwMRleEOIpqHuyC32z5CC75FAJVly8IP7vLjCjKrDHhNu6yc_5MOvbOQO8CCr0TwLj_XsoSkshH9Q5ICGARL64Ts8F7pmDKC9EDyKR7lZ-tkAJXcCgJd_KCIGnHfULSlwoFrj5QPcVYvGMcaY3Jl4rjyIhctEKXkUiGDwzpjnYbhzVBpsIR=LW6VLVxQXinIFkyBob7lFlyX_y=Gm=5garfnBd29OZWjfym0qh0Em24hJXlbWE7ufXNFUAA8dPNfzjsFk=hOtnpqAokP56vsnOnK0Jl_fOl=5ycCZG6rqGeIDXbRbM_AEy=CPJbE_wbbB2S2Mp9g49Bv9tn_S3LPG_aA_aAWGVDSIVs-3=kwdIybN8y
X-J3PopQvX-d: AAaCxAiBBKCMgcGASZAQgICAACIqGSI6QDSXAaoclOq4s6T2AkpRq7ZjyDmvHZIRbYeFd-E
X-Forwarded-For: 39.41.162.210
X-Forwarded-Proto: https
X-J3PopQvX-f: A3r8AMZyAQAABWpomSNWTAA_aOd-ML0d_DenMFOwBhK_GRxSWvW5FLJRxZ2sAScpotKucnW8wH8AAEB3AAAAAA==
X-J3PopQvX-c: ACCn_sVyAQAAdkviREb3CdA4iVdSrR4-Gc4Y3RxJWrLhnUx8XioZIjpANJcB
X-TLS-Version: 771
X-J3PopQvX-z: q
Run Code Online (Sandbox Code Playgroud)

但是我无法通过执行上面的代码来获取这些标头。我如何获得这些?

编辑:我使用了答案,效果很好。只有一个缺失的部分。

page.route('**', route => {
    const request = route.request() …
Run Code Online (Sandbox Code Playgroud)

http request node.js playwright

2
推荐指数
1
解决办法
4557
查看次数

INNER JOIN 中的 SELECT 和 Count

我尝试显示每个产品的图像数量。但这是请求返回所有产品的图像数量。

SELECT images, pl.*, l.iso_code, ps.price, cl.name as category_name
FROM `ps_product_lang` pl
INNER JOIN `ps_product` p ON (p.`id_product` = pl.`id_product`)
INNER JOIN `ps_lang` l ON (pl.`id_lang` = l.`id_lang`)
INNER JOIN `ps_product_shop` ps ON (ps.`id_product` = p.`id_product`)
INNER JOIN `ps_category_lang` cl ON (cl.`id_category` = p.`id_category_default`) and (cl.`id_lang` = pl.`id_lang`)
 
INNER JOIN (SELECT id_image, id_product, COUNT(id_image) AS images
FROM `ps_image`) i ON (i.`id_product` = p.id_product)
 
WHERE p.active = 1 AND cl.id_shop = 1
ORDER BY pl.name ASC
LIMIT 10 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

在这一行。 …

mysql sql request

2
推荐指数
1
解决办法
209
查看次数

为什么axios发送两个请求

我需要有关 axios 的帮助,我不知道为什么在一次通话中向此处发送两个请求,一张 chrome 网络的图像

我正在使用 react,当我发送请求时,该函数只触发一次(我调试并放置了 console.logs 并得到一个响应)但在 chrome 网络中我收到了两个请求,具有不同的标头和类型。一个有授权令牌,另一个没有令牌成功请求错误请求,这是在一次调用中,我不知道发生了什么。

谢谢你的时间!

javascript http request reactjs axios

2
推荐指数
1
解决办法
176
查看次数