LINUX.ORG.RU

Perl multipart problem (:


0

1

Всем привет, не могу понять в чем дело, подскажите ошибку. Есть запрос http://pastebin.com/wJmAfhZd Попробовал написать скрипт для выполнения этого запроса http://pastebin.com/XD9295UJ (Пробовал и хидеры все передавать..) Пишет HTTP/1.1 200 OK, мне кажется должно быть в этом случае 302 ? Мб запросы подобного вида и не так составляются?? Кто чем может вообщем..

Кого не спрошу все перловики в ужасе молчат)


Насколько я понял, ты хочешь передать параметры формы скрипту на удалённом сервере? Если так, то ответ HTTP/1.1 200 OK вполне адекватен.

Или распиши задачу, что конкретно требуется?

nickleiten ★★★
()

302
The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was «Moved Temporarily»)

разве 302 не означает редирект? а 200 означает, что урл найдет, запрос передан.

rikardoac
()
Content => [
'id'               => "a812a878",
'DO'               => '1',
'A'                => '0',
'B'                => '0',]

Я, возможно, подзабыл perl, но, ЕМНИП квадратные скобки - это ссылка на анонимный массив, тебе же нужен анонимный хэш, то есть {}.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

Судя по коду, человек совсем с перлом не знаком. Литералы путает, беспорядочные и нелогичные вызовы методов, явные синтаксические ошибки. В общем мы ему не сможем помочь.

outtaspace ★★★
()
Ответ на: комментарий от DELIRIUM

DELIRIUM можно и { и [ outtaspace где я литералы путаю ? ._o Единственное где ошибся это в начале, нужно было

$req=$ua->get('http://site/script')->content;
(это только на пасте, в оригинале правильно все было). Явные синтаксические ошибки ? ._о Можно увидеть правильный вариант? Я ради этого и пришел собственно, я не просил за меня всё делать, как видите сам попробовал..(:

reddim
() автор топика
Ответ на: комментарий от anonymous

Извиняюсь, да нужен 200 ОК, но должно выполнятся действие после отправки данного кода, а оно не выполняется..всё что передаётся, я выложил в первой ссылке..

reddim
() автор топика
Ответ на: комментарий от reddim

Так может дело в скрипте на стороне сервера? Что он ожидает получить?

anonymous
()
Ответ на: комментарий от reddim

можно и { и [

Ты же понимаешь, что ты написал херню, да?

#!/usr/bin/env perl
use strict;
use warnings;

sub func {
    my $ref = shift;
    foreach(keys %{$ref}) {
        print "$_\n";
    }
}

my $arr = [
    'aa' => 'bb',
    'cc' => 'dd',
    ];

func($arr);
$ perl test.pl 
Not a HASH reference at test.pl line 7.
DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от outtaspace

Неужели задача не ясна? всё повторяется опять...

Никто не понимает что я прошу?

reddim
() автор топика
Ответ на: комментарий от DELIRIUM

DELIRIUM

my $ENTER=$ua->post('http://site.ru/login',
[
'redirect'        => '',
'login'           => '',
'pass'            => '',
'submit_login'    => '',
]); 

В таких конструкциях оба варианта работают..

reddim
() автор топика
Ответ на: комментарий от reddim

А, да, посмотрел perldoc по HTTP::Request::Common, там можно. Тогда сорри =)

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от reddim

1.

-----------------------------98942870323811

Это — boundary. Задается в поле Content-type заголовка. Может быть любым. 2. Я не уверен, что твой принимающий запрос скрип правильно работает с multipart/form-data

POSTDATA =-----------------------------98942870323811

Что это за фигня? 3. Приведи полностью запросы и ответы, включая заголовки.

anonymous
()
Ответ на: комментарий от anonymous

POSTDATA =-----------------------------98942870323811

В таком виде запросы снифер отображает в фаирфоксе (TamperData).

Я дописал уже, все работает.

Не выкладывал исходники свои полноценные, по личным причинам)

reddim
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.