2017-06-30 32 views
0

私はlwip/stackを使ってstm32f4マイクロコントローラを使っています。 次のコードは正常に動作します:マイクロコントローラからサーバ(API)へのhttpリクエストをGETします

sprintf(buffer, "GET /api/callAction?deviceID=80&name=turnOn\r\n"); 
    strcat(buffer, "Host: 192.168.2.7\r\n"); 
    strcat(buffer, "Connection: close\r\n"); 
    strcat(buffer, "\r\n"); 

サーバは次のように認証を必要とするときに問題がある:

strcat(buffer, "Host: admin:[email protected]\r\n"); 

:私は、コードに承認パーツを追加しようとしている

admin:[email protected]/api/callAction?deviceID=80&name=turnOn 

しかし、http要求は機能しません。

アイデア? PS:イムKeil社のARM/stm32f4 /のlwIPスタック サーバー使用:

答えて

0

LITE Fibaroのホームセンターは、ここで読みました:

https://en.wikipedia.org/wiki/Basic_access_authentication

をあなたは

Authorization: Basic XXXXXXXXXXXXXXXX 

この文字列を渡したいですXXXXXXXXXXXXXXXXは、Base64バージョンのusername:password

fです。あなたが他のすべてのために行うよう

Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l 

ちょうどそれをSTRCAT:またはたとえば、ユーザ名がAladdinで、パスワードがOpenSesameであるならば、あなたはBase64でする必要があります文字列が続いているQWxhZGRpbjpPcGVuU2VzYW1l

に結果の文字列Aladdin:OpenSesameをエンコードもの:

strcat(buffer, "Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l\r\n"); 
関連する問題