Size: a a a

2021 March 11

AP

Anton Petrusevich in Modern::Perl
не, это ерунда. я всегда делал запросы сам
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Petrusevich
не, это ерунда. я всегда делал запросы сам
Ну ты же видишь в дампере, что в req headers нету кук
источник

О

Оскар in Modern::Perl
может там проблема в том, что есть редирект на другой домен?
источник

AP

Anton Petrusevich in Modern::Perl
с локалхоста?
источник

О

Оскар in Modern::Perl
а там локалхост? не вчитывался прост
источник

DF

Denis F in Modern::Perl
Sergey Zhmylove
Ну ты же видишь в дампере, что в req headers нету кук
Ну во втором запросе то есть кука из первого
источник

DF

Denis F in Modern::Perl
Оскар
а там локалхост? не вчитывался прост
Локалхост, редиректов нет. Если дёргать запросы курлом из консоли,  то куки отлично обрабатываются.
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis F
Локалхост, редиректов нет. Если дёргать запросы курлом из консоли,  то куки отлично обрабатываются.
Ну реально ведь работает
источник

О

Оскар in Modern::Perl
Denis F
Локалхост, редиректов нет. Если дёргать запросы курлом из консоли,  то куки отлично обрабатываются.
а если ты этим скриптом сходишь на другой api url, например на ya.ru будут у тебя в конце куки?
источник

SZ

Sergey Zhmylove in Modern::Perl
Твой скрипт? Похоже? Вот это у меня работает

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use URI;
my $API_URL = 'https://localsite/';
my $ua = LWP::UserAgent->new(ssl_opts=>{verify_hostname=>0});
$ua->cookie_jar( {} );
my $l_req = HTTP::Request->new(POST => $API_URL.'login');
$l_req->content_type('application/x-www-form-urlencoded');
$l_req->header(Accept => 'application/json');
$l_req->content('user=user&pass=pass');
my $l_res = $ua->request($l_req);
use Data::Dumper; warn 'login: '.Dumper($l_res);
my $s_req = HTTP::Request->new(GET => $API_URL.'api/telegram/check'
);
$s_req->content_type('application/x-www-form-urlencoded');
$s_req->header(Accept => 'application/json');
$s_req->content();
my $s_res = $ua->request($s_req);
use Data::Dumper; warn 'foo: '.Dumper($s_res);
источник

DF

Denis F in Modern::Perl
Sergey Zhmylove
Твой скрипт? Похоже? Вот это у меня работает

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use URI;
my $API_URL = 'https://localsite/';
my $ua = LWP::UserAgent->new(ssl_opts=>{verify_hostname=>0});
$ua->cookie_jar( {} );
my $l_req = HTTP::Request->new(POST => $API_URL.'login');
$l_req->content_type('application/x-www-form-urlencoded');
$l_req->header(Accept => 'application/json');
$l_req->content('user=user&pass=pass');
my $l_res = $ua->request($l_req);
use Data::Dumper; warn 'login: '.Dumper($l_res);
my $s_req = HTTP::Request->new(GET => $API_URL.'api/telegram/check'
);
$s_req->content_type('application/x-www-form-urlencoded');
$s_req->header(Accept => 'application/json');
$s_req->content();
my $s_res = $ua->request($s_req);
use Data::Dumper; warn 'foo: '.Dumper($s_res);
У тебя тут два запроса - один ставит куку, второй использует. А у меня три,  первый ставит, второй использует от первого запроса и добавляет свою и третий использует обе. Вот на шаге "добавляет свою" все и ломается.
источник

V2

Venom1 2 in Modern::Perl
добрый день, подскажите плз, есть структура данных, например ссылка на хеш, в хеше есть значение как число. делаю encode_json() все ок, все как надо, никаких манипуляция с данными не делаю, только какие-то сравнения, делаю еще раз encode_json() уже в конце функции и там пиздец где должны быть числа уже строки. как быть господа, кто-то с таким сталкивался? не хочется держать доп копию струткуры, это какое-то расточительство ресурсов.
источник

DS

Dmitriy Shamatrin in Modern::Perl
Какие-то это какие?
источник

DS

Dmitriy Shamatrin in Modern::Perl
use strict;
use warnings;

use JSON;

my $h = {
   one => 1.0
};

print encode_json($h), "\n";
if ($h->{one} == 1.0) {
   print "Equal\n";
}
print encode_json($h), "\n";
if ($h->{one} eq 1.0) {
   print "Equal\n";
}
print encode_json($h), "\n";
источник

DS

Dmitriy Shamatrin in Modern::Perl
Выхлоп
{"one":1}
Equal
{"one":1}
Equal
{"one":"1"}
источник

DS

Dmitriy Shamatrin in Modern::Perl
При сравнении eq перл думает что это строка, можешь форсировать число, добавив к строке ноль, если проблема

use strict;
use warnings;

use Data::Dumper;
use JSON;

my $h = {
   one => 1.0
};

print encode_json($h), "\n";
if ($h->{one} == 1.0) {
   print "Equal\n";
}
print encode_json($h), "\n";
if ($h->{one} eq 1.0) {
   print "Equal\n";
}
print encode_json($h), "\n";

$h->{one} += 0;
print encode_json($h), "\n";
источник

DS

Dmitriy Shamatrin in Modern::Perl
Выхлоп
```
{"one":1}
Equal
{"one":1}
Equal
{"one":"1"}
{"one":1}

```
источник

V2

Venom1 2 in Modern::Perl
щас
источник

ММ

Максим Максимов... in Modern::Perl
Преобразовывает по ссылке eq
источник

V2

Venom1 2 in Modern::Perl
нигде нет eq Только == и !=
источник