[GELÖST] HttpUtils_NonblockingGet und $param->{url} fester String ...

Begonnen von CoolTux, 16 Juni 2020, 14:16:44

Vorheriges Thema - Nächstes Thema

CoolTux

Ich habe das ganze Modul auf cURL und SubProcess umgestellt.

Ich danke allen für Ihre Unterstützung.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Um Probleme mit HttpUtils_NonblockingGet auszuschliessen habe ich
- einen minimalen Upload-Server gebastelt, was hinter einem Apache auf Daten wartet
- es mit curl -T getestet
- danach mit folgender Funktion aus 99_myUtils.pm HttpUtils getestet (45MB .mp3):
sub
DoUpload($$;$$)
{
  my ($url,$fname,$user,$pw)=@_;
  my $data;
  {
    local $/= undef;
    open(FH,$fname) || return "$fname:$!";
    $data = <FH>;
    close(FH);
  }
  HttpUtils_NonblockingGet({
    url=>$url, timeout=>60, data=>$data,
    user=>$user, pwd=>$pw, callback=>sub() {
      my ($hash, $err, $ret) = @_;
      Log 1, "Upload finished, Err:$err Response-Length:".length($ret);
    }
  });
  return "Upload started";
}

=> Ich sehe keine Probleme, die MD5-Summen sind identisch.

Das heisst nicht, dass ich gegen eine curl basierte Loesung bin, ich wollte nur sicher gehen, dass es sich nicht um ein HttpUtils Problem handelt.

CoolTux

Zitat von: rudolfkoenig am 18 Juni 2020, 16:29:55
Um Probleme mit HttpUtils_NonblockingGet auszuschliessen habe ich
- einen minimalen Upload-Server gebastelt, was hinter einem Apache auf Daten wartet
- es mit curl -T getestet
- danach mit folgender Funktion aus 99_myUtils.pm HttpUtils getestet (45MB .mp3):
sub
DoUpload($$;$$)
{
  my ($url,$fname,$user,$pw)=@_;
  my $data;
  {
    local $/= undef;
    open(FH,$fname) || return "$fname:$!";
    $data = <FH>;
    close(FH);
  }
  HttpUtils_NonblockingGet({
    url=>$url, timeout=>60, data=>$data,
    user=>$user, pwd=>$pw, callback=>sub() {
      my ($hash, $err, $ret) = @_;
      Log 1, "Upload finished, Err:$err Response-Length:".length($ret);
    }
  });
  return "Upload started";
}

=> Ich sehe keine Probleme, die MD5-Summen sind identisch.

Das heisst nicht, dass ich gegen eine curl basierte Loesung bin, ich wollte nur sicher gehen, dass es sich nicht um ein HttpUtils Problem handelt.

Hallo Rudi,

Erstmal vielen lieben Dank das Du da noch Energie rein steckst. Das komische ist ja das ich das ganze über eine myUtils auch machen kann und da geht es.
Es geht auch wenn ich die URL fest codiere und nicht mit variablen versehe. Wie gesagt alles total komisch.
Ich habe sogar meine myUtils als package gemacht so wie das Modul, auch dann geht alles noch. Ist total komisch. Aber ich denke mir auch 16 Stunden Energie sind genug. Ich behaupte nicht das der Fehler an der HttpUtils_NonblockingGet liegt, es kann auch sein das ich einen Fehler mache oder es an Nextcloud liegt. So muss ich bei Nextcloud explizit PUT als Method nehmen damit es geht.
Ich schaue mal wie es sich weiter entwickelt. Ich werde eine Supportunterstützung mit autoupload für Logfile für ASC machen und dann werden wir sehen ob es da bei reinen Textfiles auch noch Probleme gibt. Da will ich auf jeden Fall wieder HttpUtils_NonblockingGet nehmen.


Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

ZitatEs geht auch wenn ich die URL fest codiere und nicht mit variablen versehe.
Ich vermute, dass einer der verwendeten Variablen Wide-Character enthaelt.

CoolTux

Hatte ich eigentlich soweit überprüft. Habe extra die Variable und nur eine geänderte selbst mit String gefüllt.
Was mir vorhin noch ein viel wäre ein chomp() auf das <FD> zu machen. Aber nun ist zu spät
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net