2011-08-15 6 views
9

Arduino가 콘텐츠에서 HTTP 헤더를 분리하여 웹 HTTP 응답을 구문 분석 할 라이브러리를 찾고 있습니다.Arduino로 HTTP 응답을 구문 분석 할 라이브러리

거기에서 다양한 스케치를 읽으면 데이터 스트림을 구문 분석하는 가장 진보 된 도구는 TextFinder입니다.

HTTP 응답을 구문 분석하는 데 도움이 될 수있는 다른 라이브러리에 대해 알고 있습니까?

답변

13

누군가가 HTTP 클라이언트 응용 프로그램을위한 아두 이노 라이브러리에 노력하고있어 :

https://github.com/amcewen/HttpClient

+1

I가 Google App Engine 백엔드이 도서관에 문제가 있어요의 숫자로 설명되어있는 amcewen/HttpClient를에서 포크. lib가 청크 분할 인코딩을 지원하지 않으므로 내 응답을 읽을 때 이상한 문자가 표시됩니다.앱 엔진이 지원하는 경우 HTTP 1.0을 사용하도록 lib에 지시하는 것처럼 쉽습니다. –

+0

문서 : https://www.arduino.cc/en/Reference/WiFi101 ("클라이언트 클래스"로 검색, 오른쪽의 사이드 바에서 찾을 수 있습니다) – Brampage

2

Arduino를 웹 서버로 사용하기위한 몇 가지 Arduino 방패 및 라이브러리가 있으며 시작할 수있는 좋은 장소가 될 수 있습니다.

TinyWebServer에는 헤더 구문 분석을 처리 할 수있는 다운로드 가능한 HTTP 라이브러리가 있습니다.

아두 이노 놀이터에서 일부 웹 서버 코드 (전용 HTTP 요청을 처리 할 수 ​​있습니다) :

3

두 가지 대안이 있습니다

  1. https://github.com/amcewen/HttpClient
  2. https://github.com/interactive-matter/HTTPClient

내가 지금까지 본 가장 큰 차이점 :

  • # 1 제로 문서를 가지고는, # 2는 꽤있다 괜찮은 문서
  • # 1은 URL을 구성해야합니다. 수동; # 2는 예를 들어 # 2는 아두 이노의 IP 주소와 대상 URL의 IP 주소를 제공하도록 요구
  • 매개 변수 이름 = 값 쌍의 배열, # 1은 아두 이노 1.0의 DHCP 내장 및 DNS 조회 라이브러리를 사용
6

하는 경우 당신이 필요로하는 모든 헤더를 제거하는 것입니다, 다음 코드의이 비트는 나를 위해 잘 작동 :

char c = client.read(); 
result = result + c;  

**// Delete HTTP headers 
if(result.endsWith("Content-Type: text/plain")) 
{ 
    result=""; 
}** 

나는 String 객체 내 응답을 저장하고, 마지막 헤더가 도착할 때를 비 웁니다. 저는 HTTP 전문가가 아니므로이 헤더가 항상 마지막에 도착하는지 확신 할 수 없습니다.

공백이나 줄 바꿈 등이 남아있을 수도 있습니다. 인쇄하기 전에 단순히 문자열을 "트림"하십시오!

관련 문제