Risposta "Impossibile ottenere alcuna risposta" quando si utilizza postino con sottodominio


223

Sto usando Postman per testare un'API che ho, tutto va bene quando la richiesta non contiene un sottodominio, tuttavia quando aggiungo un sottodominio all'URL ricevo questa risposta.

Impossibile ottenere risposta

Si è verificato un errore durante la connessione a http: //subdomain.localhost: port / api /

Perché questo potrebbe essere successo:

Il server non è riuscito a inviare una risposta: assicurarsi che il back-end funzioni correttamente

I certificati SSL autofirmati vengono bloccati: risolvilo disattivando "Verifica certificato SSL" in Impostazioni> Generali

Proxy configurato in modo errato Assicurarsi che il proxy sia configurato correttamente in Impostazioni> Proxy

Timeout richiesta: modifica il timeout della richiesta in Impostazioni> Generale

Se copio lo stesso URL da Postman e lo incollo nel browser ottengo una risposta adeguata, c'è qualche tipo di configurazione che dovrei fare per far funzionare Postman con sottodomini?


1
Mi sono imbattuto principalmente in problemi di timeout quando c'era qualcosa come non essere connesso a una VPN, un processo in fuga sul lato server. Potrebbe esserci qualcosa che manca nelle intestazioni della richiesta o nella configurazione CORS?
Ed Meacham,

1
in questo caso, non dovrei ricevere "cattiva richiesta", "non autorizzato" o qualcosa di simile?
Yahya Hussein,

1
Per un problema di routing, otterresti sicuramente un 40x. Se si tratta di un problema di whitelist / VPN dovresti ricevere anche un 40x ... Non ho idea di come sia configurato il servizio, ma quando usi Postman, la tua richiesta verrà da un'origine diversa - quindi, un potenziale problema di whitelist . Dovresti essere in grado di eseguire un debug di base sul lato server per vedere se stai arrivando al controller per il tuo endpoint ...
Ed Meacham,

1
Vedo, se si tratta di un problema della lista bianca, funzionerà per localhost / api e non per subdomain.localhost / api? no, non arriva al controller
Yahya Hussein,

1
Penso che molte volte ci sia qualcosa che non va nell'applicazione e non in Postman. Ho eseguito il debug della mia applicazione e verificato nella finestra di output in Visual Studio e ho scoperto che c'erano dei loop di riferimento tra le mie entità. Dopo aver risolto il problema, il problema era sparito.
Desell,

Risposte:


480

Prima vai su Impostazioni in Postino :

  1. Off dalla verifica del certificato SSL nella scheda Generale :

  2. Off the Global Proxy Configuration e Use System Proxy in Proxy Tab:

  3. Fare Request Timeout a Zero


Hai seguito tutti i passaggi, proprio ora ho modificato ha funzionato per me
Ramesh R

1
se non hai l'opzione ssl devi scaricare postino da qui: www.getpostman.com
Abdullah Tahan

14
La disattivazione della certificazione SSL ha funzionato per me
codice di deviazione il

4
Ha funzionato come un fascino, ma la mia confusione è, perché ha funzionato per il QA, ma non per DEV. Ad ogni modo, entrambi funzionano bene ora. Grazie ancora.
raja777m,

26
Adoro il modo in cui questa risposta ottiene così tanti voti quando ti dice letteralmente le stesse cose che il messaggio di errore ha detto di fare.
georgiaboy82,

224

Ho avuto lo stesso problema. È stato causato da una nuova riga alla fine del valore dell'intestazione "Autorizzazione", che avevo impostato manualmente copiando e incollando il token al portatore (che conteneva accidentalmente la nuova riga alla fine)


14
Lo stesso qui, il mio era su un'intestazione personalizzata. Rimossa la newline extra, va tutto bene.
Xiao,

In qualche modo correlato: le mie richieste sono state raggruppate in una raccolta, utilizzando una variabile url comune in tutte le richieste. Ho cancellato per errore il nome della variabile (anche se i valori dell'URL erano ancora lì) e ho ricevuto l'errore menzionato nell'OP.
Jesuisme,

3
Questo può accadere su qualsiasi intestazione. Mi è successo con l' Cookieintestazione
Kerooker

4
Questo mi ha salvato la vita!
Neeohw,

2
@Kerooker! Il tuo commento è ciò che mi ha salvato! Era una copia dell'intestazione incollata che aveva uno spazio iniziale per me.
saml

56

Se ricevi un messaggio "Impossibile ottenere risposta" dalle app native di Postman durante l'invio della richiesta, apri Postman Console (Visualizza> Mostra postman console), invia di nuovo la richiesta e verifica la presenza di eventuali log degli errori nella console.

Grazie a numaanashraf


4
Molto utile. Penso di aver bisogno di disabilitare l'sl certs, ma avevo aggiunto un'intestazione sbagliata e la console me l'ha spiegato.
MattC

2
Questo mi ha indicato nella giusta direzione; nel mio caso il registro della console ha dato un errore molto più chiaro di Postman: "Errore: carattere non valido nel contenuto dell'intestazione [" Autorizzazione "] Avviso: questa richiesta non è stata inviata completamente e potrebbe non avere tutte le intestazioni di sistema richieste".
Peter W

1
Questa dovrebbe essere la risposta accettata poiché ti aiuta a capire la causa sottostante e non solo a indovinarla (ad esempio "carattere non valido nell'intestazione").
Alexei

17

Ciao, questo problema è stato risolto per me.

impostazione -> generale -> Timeout richiesta in ms = 0


Potresti ridere, ma una nuova installazione v7.17.0 aveva questo su 60... Se non lo avessi menzionato, non avrei cercato lì per ore ... Grazie!
Koshinae,

Boom! Ha funzionato, posso sapere il motivo dietro questo?
Pardeep Jain,

13

Se tutti i metodi sopra indicati non funzionano, controlla le variabili di ambiente e assicurati che i seguenti ambienti non siano impostati. Se questi sono impostati e non necessari per altre applicazioni, rimuoverli.

HTTP_PROXY
HTTPS_PROXY

Link di riferimento


2
Non riesco a credere che si verifichi ancora nel 2019.E se le mie altre app avessero bisogno di quei parametri
ambientali


6

Quando viene visualizzato il seguente errore, inserisci qui la descrizione dell'immagine

devi fare quanto segue.

Passaggio 1: in Postman, fai clic sull'icona della chiave inglese, vai alle impostazioni, quindi vai alla scheda Proxy.

Passaggio 1 Icona chiave inglese> Impostazioni> Scheda Proxy

Passaggio 2: creare un proxy personalizzato. Questo articolo spiega come creare un proxy personalizzato. Dopo aver creato il proxy personalizzato, assicurati di disattivare il pulsante di attivazione proxy. Ho inserito 61095 per il server proxy e ha funzionato per me.

inserisci qui la descrizione dell'immagine

Passaggio 3:

Successo

Successo


4
Puoi spiegare perché un proxy sarebbe necessario per accedere a un server sulla rete locale che presenta questo problema?
robross0606,

5

Ho trovato questa soluzione

  1. In postino vai su impostazione -> proxy
  2. E via Configurazione proxy globale
  3. sul Usa proxy di sistema inserisci qui la descrizione dell'immagine

  4. E vai al file di configurazione dell'host Windows 'C: \ Windows \ System32 \ drivers \ etc \ hosts'

  5. Apri quel file in modalità amministratore
  6. E aggiungi il sottodominio al file hosts inserisci qui la descrizione dell'immagine

3

Per me ciò che ha funzionato è stato quello di aggiungere 127.0.0.1 subdomain.localhostal mio file host. Su OSX che era / etc / hosts. Non sono sicuro del perché fosse necessario in quanto potevo raggiungere il sottodominio da Chrome.


2
  1. In postino vai su impostazione -> proxy
  2. E via Configurazione proxy globale

inserisci qui la descrizione dell'immagine


1

Per me, era quel percorso che stavo chiamando nel mio nodo server non restituiva nulla. Aggiunta

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

al percorso che stavo chiamando risolto il problema.


1

Hai detto che stai utilizzando un certificato CER.

Secondo la pagina del postino sui certificati.

Scegli il file del certificato client nel campo del file CRT. Attualmente supportiamo solo il formato CRT. Il supporto per altri formati (come PFX) arriverà presto.

Il nome dell'estensione CER, CRT non rende il certificato quel tipo di certificato ma, questi sono i nomi delle estensioni esclusi.

CER è un certificato X.509 in forma binaria, codificato DER.

CRT è un certificato X.509 binario, incapsulato nella codifica del testo (base-64).

È possibile utilizzare OpenSSL per modificare un file CER in un file CRT. Non ho avuto fortuna, ma sembra così.

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

o

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


1

Nessuna di queste soluzioni funziona per me. Postman non sta inviando alcuna richiesta al server perché Postman non trova l'host. Quindi, se modifichi il tuo / etc / hosts in 127.0.0.1 localhost 127.0.0.1 subdomain.localhost

Per me funziona.


1

Per me il problema era che Content-Lengthera troppo grande. Ho inserito il contenuto del corpo in NotePad ++ e ho contato i personaggi, inserito quella figura PostMane poi ha funzionato.

So che non risponde direttamente al motivo per cui il sottodominio dell'operazione non funzionasse, ma potrebbe aiutare qualcuno.


Il postino restituisce lo stesso errore anche se si invia l'intestazione HTTP content-encoding: gzipma il contenuto non è compresso con gzip. Vedi stackoverflow.com/a/52854400/2988107
Mišo

1

spazi invisibili

Nel mio caso sono stati gli spazi invisibili che il postino non ha riconosciuto, la stringa di testo sopra riportata viene visualizzata come senza spazi nel postino. Ho disabilitato il certificato SSL Validation e System Proxy anche provato sull'estensione postman chrome (che sta per essere deprecata), ma quando ho scaricato e provato Insomnia e ha dato quei punti rossi nel luogo in cui si trovavano quegli spazi, deve essere arrivato lì durante la copia /incolla


1

Per chiunque abbia riscontrato questo problema con un dominio reale anziché localhost e non sia stato in grado di risolverlo utilizzando TUTTE LE SOLUZIONI SOPRA .

Prova a cambiare il tuo DNS di rete (WIFI o LAN) con qualche altro DNS. Per me, ho usato Google DNS 8.8.8.8, 8.8.4.4 e ha funzionato!

inserisci qui la descrizione dell'immagine


1

la soluzione è molto semplice se si utilizza l'applicazione asp.net core 2. All'interno del metodo ConfigureServices all'interno del file startup.cs tutta questa riga

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


0

Dopo tutti i metodi di cui sopra come disattivare la verifica del certificato SSL, attivare solo Usa proxy di sistema e rimuovere le variabili di ambiente di sistema HTTP_PROXY e HTTPS_PROXY, ha funzionato.

Nota: ho dovuto riavviare l'app Postman, poiché le variabili di ambiente sono state modificate.


0

Deselezionare il proxy e la verifica del certificato SSL non ha funzionato per me.

Le variabili di ambiente PROXY non modificabili hanno funzionato.

export http_proxy=
export ftp_proxy=
export https_proxy=

Passare alla directory in cui è installato Postman e quindi:

./Postman

0

Postman per Linux versione 6.7.1 - Ubuntu 18.04 - linux 4.15.0-43-generic / x64

Ho avuto lo stesso problema e per caso ho sostituito http://localhostcon http://127.0.0.1e tutto ha funzionato.

Avevo etc/hostsle voci giuste per localhoste le https://localhostrichieste funzionavano sempre come previsto.

Non ho idea perché cambiare localhostper httpcon 127.0.0.1risolto il problema.


0

Nel mio caso, MVC non è stato in grado di serializzare i risultati (ho usato accidentalmente un modello anziché DTO). Ho eseguito il debug per passare una semplice stringa, che ha funzionato. Una volta risolto il problema con la serializzazione, è venuto fuori tutto.


0

Nel mio caso il proxy (aziendale) utilizzava un certificato SSL autofirmato che a Postman non piaceva. L'ho scoperto attivando Visualizza-> Mostra console Postman e ritentando la richiesta. La console ha quindi mostrato l'errore del certificato. In Impostazioni-> Generale ho disabilitato la verifica del certificato SSL.


0

La soluzione per me, poiché sto usando l' Postmanestensione deprecata per Chrome, per risolvere questo problema ho dovuto:

  1. Chiama alcune GETrichieste utilizzando il Chromebrowser stesso.
  2. Attendi che appaia la pagina di errore "La tua connessione non è privata" .
  3. Fare clic su ADVANCEDe quindi proceed to [url] (unsafe)collegare.

Successivamente, le richieste tramite l'estensione stessa dovrebbero funzionare.


0

Nel mio caso era una sottorete non configurata correttamente. Solo una delle 2 sottoreti dell'ELB ha funzionato.

Ho capito questo facendo un nslookup e cercando di arricciare direttamente gli IP restituiti. Solo uno ha funzionato. Il postino continuava a usare quello configurato male.


0

Ho avuto lo stesso problema.

Si è scoperto che il mio timeout era troppo basso. L'ho cambiato in 30ms pensando che fosse 30sec. L'ho riportato a 0 e ha ricominciato a funzionare.


0

Ho avuto lo stesso problema "Impossibile ottenere risposta" a causa di un parametro errato nell'intestazione. L'ho risolto rimuovendo il parametro HOST dall'intestazione.

PS: Sfortunatamente, sono stato spinto a installare l'altro software per ottenere queste informazioni. Dovrebbe essere bello ricevere questo messaggio di errore da Postman invece di ottenere sciocchezze generali.


0

Nel mio caso, ho dimenticato di impostare il valore della variabile nel campo "VALORE ATTUALE".


0

Nel mio caso, il problema era che, per l' ambiente UAT , l'URL dell'API inizierà con Http anziché https . Inoltre, il backend assegna diverse porte sia per Http che per https.

per esempio,

http://10.12.12.31:2001/api/example . - è corretto per me

https://10.12.12.31:2002/api/example . - è sbagliato per me

Perché stavo usando https e la porta 2002 per colpire l'ambiente UAT. Quindi sto ottenendo non è stato possibile ottenere alcun errore di risposta nel postino.


0

Ho appena riscontrato questo errore. Nel mio caso, il percorso era TROPPO LUNGO. Quindi un URL del genere mi ha dato questo errore nel postino (esempio falso)

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

mentre

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

ha funzionato bene.

Spero che aiuti qualcuno che per caso legga così lontano ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.