|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Проблема с HTTP авторизацией в Indy (Tidhttp) Здравствуйте! Столкнулся с некой проблемой, связанной с HTTP авторизацией, используя tidhttp. Привожу код: Код: procedure TForm1.Button2Click(Sender: TObject);
var
  PostData: TStringList;
  Response: TStringStream;
begin
  Response := TStringStream.Create('');
  PostData := TStringList.Create;
  try
    IdHTTP1.Post(Edit1.Text, PostData, Response);
    Memo1.Lines.Text := Response.DataString;
  finally
    Response.Free;
    PostData.Free;
    IdHTTP1.Disconnect;
  end;
end;
procedure TForm1.IdHTTP1Authorization(Sender: TObject;
  Authentication: TIdAuthentication; var Handled: Boolean);
begin
  Handled := true;
  Authentication.Username := 'login';
  Authentication.Password := 'password';
end;В результате авторизации не происходит. IdHttp мне возвращает "401 Unauthorized". Пожалуйста, помогите найти ошибку! Быть может я забыл учесть еще какие-либо моменты? Очень жду ваших ответов! | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Попробовал использовать synapse. Результат такой же. Видимо я что-то действительно не учел. Привожу код synapse: Код:   http := THTTPSend.Create;
  http.UserName := 'login';
  http.Password := 'password';
  http.Document.Write(pointer(postdata)^, length(postdata));
  http.HTTPMethod('POST', 'http://????');
  ShowMessage(http.ResultString);
  http.Free;В итоге showmessage показывает "Unauthorized". Что делать? | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   куда авторизуетесь? кого автуризуете? Может ссылкочку на страницу дадите? А то "пойди туда, не знаю куда..." Да, и: Код: http.UserName := 'login'; http.Password := 'password';  | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   Примерно так это должно выглядеть: PHP код: 
		 | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Та же проблема. Некоторое время по отладкой дали понять, что Handled := true; делает авторизацию базовой. В случае Digest как бы и не должно работать. Единственное отличие между посылаемыми данными индями и браузера, это было явное указание алгоритма. В браузере заголовок с авторизацией не содержит информацию об алгоритме, а инди посылает кусок: algorithm="MD5",. Это рождает предположение, что там другое шифрование, но какое - не понятно. |