2016-05-08 21 views
0

私のテスト中、Geolocation APIを使用して正しい結果が返されます。 AWS上に配置すると、私のEC2インスタンスが配置されているVirginiaのIPアドレスが返されます。Google MapsジオロケーションAPIは私のサーバの緯度と経度を返します

"セルID":27193、 "locationAreaCode":17007、 "mobileCountryCode":404、 "mobileNetworkCode":20

結果: "LAT":19.2019619、 "LNG":73.1063466

39.043756699999996 "LNG":

しかし、アナリティック・ワーク上で、それが返されます。 "LAT" -77.4874416

params = { 
     "key": SERVER_KEY 
    } 

    data = json.dumps({ 
     "cellTowers": [ 
      { 
       "cellId": cid, 
       "locationAreaCode": lac, 
       "mobileCountryCode": mcc, 
       "mobileNetworkCode": mnc 
      } 
     ] 
    }) 

    log.info(params) 
    log.info(data) 
    request = requests.post(HOST_URL, params=params, data=data) 
    # print(request.text) 
    # print(request.status_code) 

    if request.status_code == 200: 
     response = json.loads(request.text) 

     latitude = response["location"]["lat"] 
     longitude = response["location"]["lng"] 

     return { 
      "latitude": latitude, 
      "longitude": longitude 
     } 

    else: 
     error_data = request.text 
     log.error("Error Occurred in Finding Cell Tower Location") 
     log.error(request.text) 
     log.error(json.dumps(params)) 
     send_error_notification(error_data) 
     return None 

答えて

0

答えはとてもシンプルで、ヘッダーを追加しても私に影響しないと仮定して私の愚かさです。

application/jsonでヘッダーを追加するだけで、すべてが魅力的です。

params = { 
     "key": SERVER_KEY 
    } 

    data = json.dumps({ 
     "considerIp": False, 
     "cellTowers": [ 
      { 
       "cellId": cid, 
       "locationAreaCode": lac, 
       "mobileCountryCode": mcc, 
       "mobileNetworkCode": mnc 
      } 
     ] 
    }) 

    headers = { 
     'content-type': "application/json", 
     'cache-control': "no-cache" 
    } 

    log.info(params) 
    log.info(data) 
    request = requests.post(HOST_URL, params=params, data=data, headers=headers) 
関連する問題