必应REST HTTPError(req.full_url,code,msg,hdrs,fp)

时间:2019-11-17 00:52:10

标签: python urllib bing-maps

我需要获取许多地址的纬度和经度位置,大约100k +。但是,按照我的代码的工作方式,我认为Bing阻止了我,因为他们认为我是垃圾邮件机器人或其他东西?我不确定错误是什么意思。有什么办法可以解决这个问题?

ListView lv;
ArrayList al = new ArrayList<String>();
ArrayAdapter ad;
MediaPlayer mp = new MediaPlayer();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_audio);

    getSupportActionBar().setTitle("Audio");
    int j;
    lv = findViewById(R.id.listview);
    Field[] fields = R.raw.class.getFields();
    for ( j = 0; j < fields.length; j++)
    {
        al.add(fields[j].getName());
    }

    ad = new ArrayAdapter(this, android.R.layout.simple_list_item_1, al);
    lv.setAdapter(ad);

    lv.setOnClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int j, long l)
        {
          if(mp!= null)
           {
               mp.release();
           }

            int res = getResources().getIdentifier(al.get(j), "raw", getPackageName());
            mp=MediaPlayer.create(audio.this,res);
            mp.start();
        }
    });

}

1 个答案:

答案 0 :(得分:0)

这是Bing的“封锁”您。它不一定认为您是“垃圾邮件机器人”,它只是Bing Maps REST API的免费“基本”帐户的强加限制(但也用于防止垃圾邮件)。

Bing每秒最多允许5个请求,并且免费帐户每年总共有125,000个请求,付费产品每秒最多可以有50个请求,还有更多请求。您可以在此处查看更多信息:https://www.microsoft.com/en-us/maps/licensing/options

正如您在评论中提到的,它阻止了“ 5个请求之后”,这很有意义。我假设您使用的是免费帐户,并且Python程序的运行速度足够快,可以每秒发出5个以上的请求。不幸的是,没有免费的午餐。您必须更换提供商或付费。

或者,导入time并在循环中添加time.sleep(number_of_seconds)