in reply to Re^4: New Bing Search Api (5)
in thread New Bing Search Api (5)

Maybe now is a good moment to revisit the Microsoft documentation you already linked and my first reply, both of which mention Ocp-Apim-Subscription-Key, which is missing from all your code. Note that the WWW-Authenticate header you get back also shows that header name.

Most likely the correct approach is to add a header with that name and your secret key as the value.

Replies are listed 'Best First'.
Re^6: New Bing Search Api (5)
by Anonymous Monk on Nov 21, 2016 at 18:40 UTC

    Thanks again for pointing me to the right direction. Adding $req->header('Ocp-Apim-Subscription-Key'=>$BingKey); brings me a bit further. Still something is wrong and the error message is a bit obscure to me.

    Connecting to Bing for: https://api.cognitive.microsoft.com/bing/v5.0/ +search?Hello HTTP/1.1 400 Bad Request Cache-Control: private, max-age=0 Date: Mon, 21 Nov 2016 18:39:19 GMT Vary: Accept-Encoding Content-Length: 138 Content-Type: application/json; charset=utf-8 Expires: Mon, 21 Nov 2016 18:38:19 GMT Apim-Request-Id: d3e4c0aa-1a8f-45f4-b3ad-f850296d1651 BingAPIs-Market: de-DE BingAPIs-TraceId: 726DF5B30CE34AF9BBF48A5584E5068C Client-Date: Mon, 21 Nov 2016 18:39:20 GMT Client-Peer: 52.174.60.141:443 Client-Response-Num: 1 Client-SSL-Cert-Issuer: /C=US/ST=Washington/L=Redmond/O=Microsoft Corp +oration/OU=Microsoft IT/CN=Microsoft IT SSL SHA2 Client-SSL-Cert-Subject: /CN=api.cognitive.microsoft.com Client-SSL-Cipher: ECDHE-RSA-AES256-SHA384 Client-SSL-Socket-Class: IO::Socket::SSL P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND" Strict-Transport-Security: max-age=31536000; includeSubDomains; preloa +d X-MSAPI-UserState: eaa0 X-MSEdge-ClientID: 3266EAB9C91A686D383EE36DC87C69F7 X-MSEdge-Ref: Ref A: 726DF5B30CE34AF9BBF48A5584E5068C Ref B: 0E8655691 +1C74DC2F6EACB35EBB37432 Ref C: Mon Nov 21 10:39:19 2016 PST {"_type": "ErrorResponse", "errors": [{"code": "RequestParameterMissin +g", "message": "Required parameter is missing.", "parameter": "q"}]}

      Last thing I want to do is read MS Bing documentation, but after a one-second glance, you're missing the very first parameter in the documentation by the looks of it, q:

      Request Parameters q | String | The user's search query

      If you read the error message, it even tells you what it doesn't like about your request.

      Maybe you want to change your script to remedy the issue the error message points out?