400: Bad Request for Virtual Earth Web Service
I've been getting quite a few messages about this "400: Bad Request" error people are seeing when trying to reference the Virtual Earth Web Service, more specifically when trying to fetch tokens so it's worth posting a little something on how to fix it. Specifically, the error is, "There was an error downloading ' https://staging.common.virtualearth.net/find-30/common.asmx' . The request failed with HTTP status 400: Bad Request. "
The current documentation in the SDK shows a reference to https://staging.common.virtualearth.net/find-30/common.asmx; however, users aren't getting the WSDL downloaded (I've had this problem myself). So, the solution is to change the reference to https://staging.common.virtualearth.net/find-30/common.asmx?wsdl.
In Visual Studio 2008, you'll need to take a (odd) extra step. For some reason adding a Web Reference is different when you go to the "Add Service" advanced options than if you were to just Add Web Reference from Website menu. So, in Visual Studio 2008...
- Select the “Add Service Reference…” item from the Website menu.
- Click on the “Advanced…” button.
- Click on the “Add Web Reference…” button.
- Enter https://staging.common.virtualearth.net/find-30/common.asmx?wsdl for the URL and then hit the “Go” button.
- When prompted, enter your Virtual Earth Developer Account ID and password.
- Once WSDL has been downloaded, give the web reference a meaningful name like “TokenService” then click the “Add Reference” button.
This should fix your issues. We'll be updating the SDK soon too.
CP
Comments
- Anonymous
October 30, 2008
If you want to create a CS file using a WSDL utility, make sure you include your user name and password, otherwise you’ll get the same ‘400: Bad Request’ error: wsdl.exe /l:CS /n:StagingVEToken /u:USERNAME /p:PASSWORD /out:bin/StagingVEToken.cs https://staging.common.virtualearth.net/find-30/common.asmx?wsdl