2016-08-11 8 views
1

を確認し、私は、Python 2.7でAPIを確認し、マイクロソフト認知を使用しようとしている:https://dev.projectoxford.ai/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523aパイソン - マイクロソフト認知は、API(のparams)

コードです:

import httplib, urllib, base64 

headers = { 
    # Request headers 
    'Content-Type': 'application/json', 
    'Ocp-Apim-Subscription-Key': 'my key', 
} 

params = '{\'faceId1\': \'URL.jpg\',\'faceId2\': \'URL.jpg.jpg\'}' 

try: 
    conn = httplib.HTTPSConnection('api.projectoxford.ai') 
    conn.request("POST", "/face/v1.0/verify?%s" % params, "{body}", headers) 
    response = conn.getresponse() 
    data = response.read() 
    print(data) 
    conn.close() 
except Exception as e: 
    print("[Errno {0}] {1}".format(e.errno, e.strerror)) 

私はconn.requestをさせる試してみましたこのような行:

conn.request("POST", "/face/v1.0/verify?%s" % params, "", headers) 

エラーは次のとおりです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> 
<HTML><HEAD><TITLE>Bad Request</TITLE> 
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> 
<BODY><h2>Bad Request</h2> 
<hr><p>HTTP Error 400. The request is badly formed.</p> 
</BODY></HTML> 

私はalrealy以下のコードに従い、作品を作ってみました:私はこの1つのだけの作品を作ることができないしかし

  1. https://github.com/Microsoft/Cognitive-Emotion-Python/blob/master/Jupyter%20Notebook/Emotion%20Analysis%20Example.ipynb

  2. Using Project Oxford's Emotion API

を。 paramsやbody引数に何か問題があると思います。 ご迷惑をおかけして申し訳ございません。それはそれを修正する必要があるよう

+0

私はJSON形式は、二重引用符ではなく使用すると思う"{body}"は、サイトが言う同じように、あなたの要求のURLが含まれているあなたの体に置き換えるべきであることを意味しますシングル。私はパラマでそれらを変えようとします。 – Dawid

答えて

0

Dawidさんのコメントは、(二重引用符)に見える、のpython 2.7のためにこれを試してみてください。

import requests 

url = "https://api.projectoxford.ai/face/v1.0/verify" 

payload = "{\n \"faceId1\":\"A Face ID\",\n \"faceId2\":\"A Face ID\"\n}" 
headers = { 
    'ocp-apim-subscription-key': "KEY_HERE", 
    'content-type': "application/json" 
    } 

response = requests.request("POST", url, data=payload, headers=headers) 

print(response.text) 

のpython 3のために:

import http.client 

conn = http.client.HTTPSConnection("api.projectoxford.ai") 

payload = "{\n\"faceId1\": \"A Face ID\",\n\"faceId2\": \"Another Face ID\"\n}" 

headers = { 
    'ocp-apim-subscription-key': "keyHere", 
    'content-type': "application/json" 
    } 

conn.request("POST", "/face/v1.0/verify", payload, headers) 

res = conn.getresponse() 
data = res.read() 
+0

ありがとう@Dawid、@ライアン。私はうまく動作しませんでした。私はあなたが言うようにしようとしました。それは 'ImportError:No module http.client.'というエラーを表示します。' conn = httplib.HTTPSConnection( 'api.projectoxford.ai') 'を二重引用符' payload = "{\" {"error":{\ n ""顔ID "、\ n" faceId2 \ ":\"他の顔ID \ "\ n}" ' "code": "BadArgument"、 "message": "Face IDが無効です。"}} ' –

+0

申し訳ありませんが、私はあなたがpython 2.7を使用していたことに気付きませんでした。 http.clientはPython 3に含まれています。 –

+0

完全性のために、あなたが持っている実際の有効なID番号(前回の/検出/電話からの返信)を交換する必要があります –

1

あなたはthis questionを参照することができます。

明らかに、コードを理解できませんでした。 enter image description here

ですから、この方法このAPIを使用することができます:

body = { 
      "url": "http://example.com/1.jpg"       
     } 
………… 

conn = httplib.HTTPSConnection('api.projectoxford.ai') 
conn.request("POST", "/face/v1.0/detect?%s" % params, str(body), headers) 
関連する問題