Antwort "Konnte keine Antwort erhalten" bei Verwendung eines Postboten mit Subdomain


223

Ich verwende Postman, um eine API zu testen, die ich habe. Alles ist gut, wenn die Anfrage keine Subdomain enthält. Wenn ich jedoch eine Subdomain zur URL hinzufüge, erhalte ich diese Antwort.

Konnte keine Antwort bekommen

Beim Herstellen einer Verbindung zu http: //subdomain.localhost: port / api / ist ein Fehler aufgetreten.

Warum dies passiert sein könnte:

Der Server konnte keine Antwort senden: Stellen Sie sicher, dass das Backend ordnungsgemäß funktioniert

Selbstsignierte SSL-Zertifikate werden blockiert: Beheben Sie dies, indem Sie die Überprüfung der SSL-Zertifikate unter Einstellungen> Allgemein deaktivieren

Proxy falsch konfiguriert Stellen Sie sicher, dass der Proxy unter Einstellungen> Proxy richtig konfiguriert ist

Anforderungszeitlimit: Ändern Sie das Anforderungszeitlimit unter Einstellungen> Allgemein

Wenn ich dieselbe URL vom Postboten kopiere und in den Browser einfüge, erhalte ich eine angemessene Antwort. Gibt es eine Konfiguration, die ich vornehmen sollte, damit der Postbote mit Subdomains funktioniert?


1
Ich bin hauptsächlich auf Timeout-Probleme gestoßen, als es so etwas wie keine Verbindung zu einem VPN gab, einem außer Kontrolle geratenen Prozess auf der Serverseite. Könnte in Ihren Anforderungsheadern oder in der CORS-Konfiguration etwas fehlen?
Ed Meacham

1
Wenn dies der Fall ist, sollte ich dann nicht "schlechte Anfrage", "nicht autorisiert" oder ähnliches erhalten?
Yahya Hussein

1
Für ein Routing-Problem würden Sie definitiv ein 40x bekommen. Wenn es sich um ein Whitelist- / VPN-Problem handelt, sollten Sie auch ein 40-faches Problem erhalten ... Ich habe keine Ahnung, wie der Dienst konfiguriert ist, aber wenn Sie Postman verwenden, kommt Ihre Anfrage von einem anderen Ursprung - also ein potenzielles Whitelist-Problem . Sie sollten in der Lage sein, einige grundlegende Debugging-Vorgänge auf der Serverseite
Ed Meacham

1
Ich sehe, wenn es sich um ein Problem mit der weißen Liste handelt, funktioniert es für localhost / api und nicht für subdomain.localhost / api? Nein, es kommt nicht zum Controller
Yahya Hussein

1
Ich denke, oft stimmt etwas mit der Anwendung nicht und nicht mit Postman. Ich habe meine Anwendung debuggt und das Ausgabefenster in Visual Studio überprüft und festgestellt, dass zwischen meinen Entitäten Referenzschleifen vorhanden sind. Nachdem ich das behoben hatte, war das Problem weg.
Desell

Antworten:


478

Gehen Sie zuerst zu Einstellungen in Postman :

  1. Deaktivieren Sie die Überprüfung des SSL-Zertifikats auf der Registerkarte " Allgemein" :

  2. Deaktivieren Sie die globale Proxy-Konfiguration und verwenden Sie den Systemproxy auf der Registerkarte "Proxy":

  3. Stellen Sie das Anforderungszeitlimit auf Null


Haben Sie alle Schritte befolgt? Gerade habe ich geändert, dass es für mich funktioniert hat
Ramesh R

1
Wenn Sie keine SSL-Option haben, müssen Sie den Postboten von hier herunterladen: www.getpostman.com
Abdullah Tahan

14
Nur das Ausschalten der SSL-Zertifizierung hat für mich
funktioniert

4
Es hat wie ein Zauber funktioniert, aber meine Verwirrung ist, warum es für die Qualitätssicherung funktioniert hat, aber nicht für die DEV. Wie auch immer, beide funktionieren jetzt gut. Danke noch einmal.
Raja777m

26
Ich finde es toll, dass diese Antwort so viele positive Stimmen erhält, wenn sie Ihnen buchstäblich die gleichen Dinge sagt, die in der Fehlermeldung angegeben sind.
Georgiaboy82

224

Ich hatte das gleiche Problem. Es wurde durch eine neue Zeile am Ende des Header-Werts "Authorization" verursacht, die ich manuell festgelegt hatte, indem ich das Inhaber-Token kopierte (das versehentlich die neue Zeile am Ende enthielt).


14
Das gleiche hier war meins auf einem benutzerdefinierten Header. Die zusätzliche Newline wurde entfernt, alles ist in Ordnung.
Xiao

Etwas verwandt: Ich hatte meine Anfragen in einer Sammlung gruppiert und eine gemeinsame URL-Variable für alle Anfragen verwendet. Ich habe versehentlich den Variablennamen gelöscht (obwohl die URL-Werte noch vorhanden waren) und den im OP erwähnten Fehler erhalten.
Jesuisme

3
Dies kann bei jedem Header passieren. Cookie
Ist

4
Das hat mir das Leben gerettet!
Neeohw

2
@Kerooker! Ihr Kommentar hat mich gerettet! Es war eine kopierte Kopfzeile, die einen führenden Platz für mich hatte.
Saml

56

Wenn Sie beim Senden Ihrer Anfrage von nativen Postman-Apps die Meldung "Keine Antwort erhalten" erhalten, öffnen Sie die Postman-Konsole (Ansicht> Postman-Konsole anzeigen), senden Sie die Anfrage erneut und suchen Sie in der Konsole nach Fehlerprotokollen.

Danke an numaanashraf


4
Sehr hilfreich. Ich glaube, ich musste die SSL-Zertifikate deaktivieren, aber ich hatte einen schlechten Header hinzugefügt, und die Konsole hat das für mich klargestellt.
MattC

2
Dies zeigte mir die richtige Richtung; In meinem Fall gab das Konsolenprotokoll einen viel deutlicheren Fehler als Postman: "Fehler: Ungültiges Zeichen im Header-Inhalt [" Autorisierung "] Warnung: Diese Anforderung wurde nicht vollständig gesendet und verfügt möglicherweise nicht über alle erforderlichen System-Header."
Peter W

1
Dies sollte die akzeptierte Antwort sein, da sie Ihnen hilft, die zugrunde liegende Ursache zu verstehen und nicht nur zu erraten (z. B. "ungültiges Zeichen in der Kopfzeile").
Alexei

17

Hallo, dieses Problem ist für mich behoben.

Einstellung -> Allgemein -> Requesttimeout in ms = 0


Sie können lachen, aber eine Neuinstallation von Version 7.17.0 hatte dies bei 60... Wenn Sie es nicht erwähnt hätten, würde ich dort stundenlang nicht suchen ... Danke!
Koshinae

Boom! Das hat funktioniert, darf ich den Grund dafür kennen?
Pardeep Jain

13

Wenn alle oben genannten Methoden nicht funktionieren, überprüfen Sie Ihre Umgebungsvariablen und stellen Sie sicher, dass die folgenden Umgebungen nicht festgelegt sind. Wenn diese festgelegt sind und von keiner anderen Anwendung benötigt werden, entfernen Sie sie.

HTTP_PROXY
HTTPS_PROXY

Referenz - Link


2
Ich kann nicht glauben, dass es 2019 immer noch auftritt. Was ist, wenn meine anderen Apps diese env-Parameter benötigen :(
thReality


6

Wenn der folgende Fehler angezeigt wird, Geben Sie hier die Bildbeschreibung ein

Sie müssen Folgendes tun.

Schritt 1: Klicken Sie in Postman auf das Schraubenschlüsselsymbol, gehen Sie zu den Einstellungen und dann zur Registerkarte Proxy.

Schritt 1 Schraubenschlüsselsymbol> Einstellungen> Registerkarte Proxy

Schritt 2: Erstellen Sie einen benutzerdefinierten Proxy. In diesem Artikel wird erläutert, wie Sie einen benutzerdefinierten Proxy erstellen. Stellen Sie nach dem Erstellen des benutzerdefinierten Proxys sicher, dass Sie die Schaltfläche zum Umschalten des Proxys deaktivieren. Ich habe 61095 für den Proxyserver eingegeben und es hat bei mir funktioniert.

Geben Sie hier die Bildbeschreibung ein

Schritt 3 :

Erfolg

Erfolg


4
Können Sie erklären, warum ein Proxy erforderlich ist, um auf einen Server im lokalen Netzwerk zuzugreifen, bei dem dieses Problem auftritt?
Robross0606

5

Ich habe diese Lösung gefunden

  1. Gehen Sie im Postboten zu Einstellung -> Proxy
  2. Und aus der globalen Proxy-Konfiguration
  3. auf dem Use System Proxy Geben Sie hier die Bildbeschreibung ein

  4. Wechseln Sie zur Windows-Host-Konfigurationsdatei 'C: \ Windows \ System32 \ drivers \ etc \ hosts'.

  5. Öffnen Sie diese Datei im Administratormodus
  6. Fügen Sie die Subdomain zur Hosts-Datei hinzu Geben Sie hier die Bildbeschreibung ein

3

Für mich funktionierte das Hinzufügen 127.0.0.1 subdomain.localhostzu meiner Host-Datei. Unter OSX war das / etc / hosts. Ich bin mir nicht sicher, warum das notwendig war, da ich die Subdomain von Chrom aus erreichen konnte.


2
  1. Gehen Sie im Postboten zu Einstellung -> Proxy
  2. Und aus der globalen Proxy-Konfiguration

Geben Sie hier die Bildbeschreibung ein


1

Für mich war es diese Route, die ich auf meinem Knotenserver anrief, die nichts zurückgab. Hinzufügen

    return res.status(200).json({
        message: 'success!',
        response: 'success!'
    });//

Auf die Route, die ich anrief, wurde das Problem behoben.


1

Sie haben erwähnt, dass Sie ein CER-Zertifikat verwenden.

Laut der Postman-Seite über Zertifikate.

Wählen Sie Ihre Client-Zertifikatdatei im Feld CRT-Datei aus. Derzeit unterstützen wir nur das CRT-Format. Unterstützung für andere Formate (wie PFX) wird in Kürze verfügbar sein.

Der Name der Erweiterung CER, CRT macht das Zertifikat nicht zu diesem Zertifikatstyp, dies sind jedoch die ausgenommenen Erweiterungsnamen.

CER ist ein X.509-Zertifikat in binärer Form, DER-codiert.

CRT ist ein binäres X.509-Zertifikat, das in Textcodierung (Base-64) gekapselt ist.

Mit OpenSSL können Sie eine CER-Datei in eine CRT-Datei ändern. Ich hatte kein Glück damit, aber es sieht so aus.

openssl x509 -inform PEM -in Zertifikat.cer -out Zertifikat.crt

oder

openssl x509 -inform DER -in zertifikat.cer -out zertifikat.crt


1

Keine dieser Lösungen funktioniert bei mir. Der Postbote sendet keine Anfrage an den Server, da der Postbote den Host nicht findet. Also, wenn Sie Ihre / etc / hosts auf ändern 127.0.0.1 localhost 127.0.0.1 subdomain.localhost

Für mich geht das.


1

Für mich war das Problem, dass das Content-Lengthzu groß war. Ich habe den Inhalt des Körpers in NotePad ++ platziert und die Zeichen gezählt und diese Zahl eingegeben, PostManund dann hat es funktioniert.

Ich weiß, dass es nicht direkt antwortet, warum die Subdomain des Ops nicht funktioniert hat, aber es könnte jemandem helfen.


Der Postbote gibt den gleichen Fehler zurück, auch wenn Sie einen HTTP-Header senden content-encoding: gzip, der Inhalt jedoch nicht komprimiert wird. Siehe stackoverflow.com/a/52854400/2988107
Mišo

1

unsichtbare Räume

In meinem Fall waren es unsichtbare Leerzeichen, die der Postbote nicht erkannte. Die obige Textfolge wird als Leerzeichen im Postboten dargestellt. Ich habe die Validierung des SSL-Zertifikats deaktiviert, und der Systemproxy hat sogar versucht, die Postman-Chrome-Erweiterung (die bald veraltet sein wird) zu testen. Als ich jedoch Insomnia heruntergeladen und ausprobiert habe und diese roten Punkte an der Stelle angezeigt wurden, an der sich diese Leerzeichen befanden, müssen sie während des Kopierens dort angekommen sein /Einfügen


1

Für alle, die dieses Problem mit einer realen Domain anstelle von localhost hatten und es mit ANY OF THE OBEN nicht lösen konnten Lösungen .

Versuchen Sie, Ihr Netzwerk-DNS (WIFI oder LAN) in ein anderes DNS zu ändern. Für mich habe ich Google DNS 8.8.8.8, 8.8.4.4 verwendet und es hat funktioniert!

Geben Sie hier die Bildbeschreibung ein


1

Die Lösung ist sehr einfach, wenn Sie die asp.net Core 2-Anwendung verwenden. Innerhalb der ConfigureServices- Methode in der Datei startup.cs wird diese ganze Zeile gespeichert

services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
                .AddJsonOptions(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);

1

Sie müssen nur SSL aktivieren deaktivieren, um Ihre Anfrage zu senden.

Proxy und andere kommen mit verschiedenen Fehlern.


0

Nach all den oben genannten Methoden wie dem Deaktivieren der Überprüfung von SSL-Zertifikaten, dem Aktivieren von Nur Systemproxy verwenden und dem Entfernen der Systemumgebungsvariablen HTTP_PROXY und HTTPS_PROXY hat es funktioniert.

Hinweis: Die Postman-App musste neu gestartet werden, da die Umgebungsvariablen geändert wurden.


0

Das Deaktivieren der Proxy- und SSL-Zertifikatüberprüfung hat bei mir nicht funktioniert.

Das Deaktivieren der PROXY-Umgebungsvariablen hat den Trick getan.

export http_proxy=
export ftp_proxy=
export https_proxy=

Wechseln Sie in das Verzeichnis, in dem Postman installiert ist, und gehen Sie dann wie folgt vor:

./Postman

0

Postman für Linux Version 6.7.1 - Ubuntu 18.04 - Linux 4.15.0-43-generic / x64

Ich hatte das gleiche Problem und ich zufällig ersetzt http://localhostmit http://127.0.0.1und alles funktionierte.

Ich etc/hostshatte die richtigen Einträge für localhostund https://localhostAnfragen funktionierten immer wie erwartet.

Ich habe keine Ahnung , warum Wechsel localhostfür httpmit 127.0.0.1dem Problem gelöst.


0

In meinem Fall konnte MVC die Ergebnisse nicht serialisieren (ich habe versehentlich ein Modell anstelle von DTO verwendet). Ich debuggte bis zur Übergabe einer einfachen Zeichenfolge, die funktionierte. Nachdem ich die Serialisierung repariert hatte, kam alles auf.


0

In meinem Fall verwendete der (Unternehmens-) Proxy ein selbstsigniertes SSL-Zertifikat, das Postman nicht mochte. Ich habe es entdeckt, indem ich View-> Show Postman Console aktiviert und die Anfrage erneut versucht habe. Die Konsole zeigte dann den Zertifikatfehler an. Unter Einstellungen-> Allgemein habe ich die Überprüfung des SSL-Zertifikats deaktiviert.


0

Die Lösung für mich, da ich die veraltete PostmanErweiterung für verwende Chrome, um dieses Problem zu lösen, musste ich:

  1. Rufen Sie eine GETAnfrage über den ChromeBrowser selbst auf.
  2. Warten Sie, bis die Fehlerseite "Ihre Verbindung ist nicht privat" angezeigt wird.
  3. Klicken Sie auf ADVANCEDund dann auf den proceed to [url] (unsafe)Link.

Danach sollten Anforderungen über die Erweiterung selbst funktionieren.


0

In meinem Fall war es ein falsch konfiguriertes Subnetz. Nur eines der beiden Subnetze in der ELB funktionierte.

Ich habe dies herausgefunden, indem ich ein nslookup durchgeführt und versucht habe, die zurückgegebenen IPs direkt zu locken. Nur einer hat funktioniert. Der Postbote benutzte einfach weiter den falsch konfigurierten.


0

Ich hatte das gleiche Problem.

Es stellte sich heraus, dass meine Zeitüberschreitung zu niedrig eingestellt war. Ich habe es auf 30 ms geändert und dachte, es wären 30 Sekunden. Ich habe es wieder auf 0 gesetzt und es hat wieder funktioniert.


0

Ich habe das gleiche Problem "Konnte keine Antwort erhalten" wegen eines falschen Parameters im Header erhalten. Ich habe es behoben, indem ich den Parameter HOST aus dem Header entfernt habe.

PS: Leider wurde ich gezwungen, die andere Software zu installieren, um diese Informationen zu erhalten. Es sollte großartig sein, diese Fehlermeldung von Postman zu erhalten, anstatt allgemeinen Unsinn zu bekommen.


0

In meinem Fall habe ich vergessen, den Wert der Variablen im Feld "CURRENT VALUE" festzulegen.


0

In meinem Fall bestand das Problem darin, dass die API-URL für die UAT- Umgebung mit HTTP anstelle von https beginnt . Außerdem weist das Backend unterschiedliche Ports für HTTP und https zu.

beispielsweise,

http://10.12.12.31:2001/api/example . - ist richtig für mich

https://10.12.12.31:2002/api/example . - ist falsch für mich

Weil ich https und 2002 Port verwendet habe, um die UAT-Umgebung zu erreichen. Ich bekomme also keinen Antwortfehler beim Postboten.


0

Ich habe gerade diesen Fehler erlebt. In meinem Fall war der Weg zu lang. So eine URL gab mir diesen Fehler beim Postboten (falsches Beispiel)

http://127.0.0.1:5000/api/batch/upload_import_deactivate_from_ready_folder

wohingegen

http://127.0.0.1:5000/api/batch/upld_impt_deac_ready_folder

hat gut funktioniert.

Hoffe es hilft jemandem, der versehentlich so weit gelesen hat ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.