Добрый день. Есть вот такой вот адрес: 86.109.200.6. Там находится ip-камера (пользователь demo,пароль пустой). Я хочу к ней подключиться из своей программы. Для этого я посмотрел в сниффере, как это делает браузер и выяснил, что он шлёт вот такой вот http-запрос:
- Http: Request, GET /cgi-bin/downstream.cgi, Using Basic Authorization
Command: GET
- URI: /cgi-bin/downstream.cgi?SID=1
Location: /cgi-bin/downstream.cgi
SID: 1
ProtocolVersion: HTTP/1.0
UserAgent: VVTK (ver40)
Accept: */*
- Authorization: Basic
- Authorization: Basic ZGVtbzo=
WhiteSpace:
- BasicAuthorization:
Scheme: Basic
- Realm: demo:
- Realm: demo:
UserId: demo
Host: 86.109.200.6
HeaderEnd: CRLF
То есть запрашивает адрес скрипта /cgi-bin/downstream.cgi. В ответ на это приходит ответ:
- Http: Response, HTTP/1.1, Status Code = 200, URL: /cgi-bin/downstream.cgi
ProtocolVersion: HTTP/1.1
StatusCode: 200, Ok
Reason: OK
+ ContentType: Bツᅭテタ@5ム
Date: Thu, 19 Aug 1982 18:30:00 GMT
Cache-Control: no-store
Pragma: no-cache
Content-Language: en
SID : 99
Audio Mode : None
Privilege : 0
Server: DCS-6620
Connection: close
HeaderEnd: CRLF
То есть соединение устанавливает нормально. А вот когда моя программа шлёт вот такой вот запрос:
- Http: Request, GET /cgi-bin/downstream.cgi, Using Basic Authorization
Command: GET
- URI: /cgi-bin/downstream.cgi?SID=1
Location: /cgi-bin/downstream.cgi
SID: 1
ProtocolVersion: HTTP/1.1
Accept: */*
Host: 86.109.200.6
UserAgent: asynchttp
Cache-Control: no-cache
- Authorization: Basic
- Authorization: Basic ZGVtbzo=
WhiteSpace:
- BasicAuthorization:
Scheme: Basic
- Realm: demo:
- Realm: demo:
UserId: demo
HeaderEnd: CRLF
То соединение разрывается на уровне TCP-сегмента! То есть, http-ответ не приходит, а сразу же сервер посылает tcp-сегмент с опцией Fin=1 (то есть закрыть соединение).
Если просто набрать в браузере
http://86.109.200.6/cgi-bin/downstream.cgi, то тоже ничего не выходит (( В чём тут дело?