Sto cercando di inviare una grande quantità di dati a un gestore HTTP. Non posso inviarlo usando GET a causa del limite di lunghezza dell'URL, quindi ho deciso di postarlo. Il problema è che non riesco ad ottenere i valori. context.Request.Form mostra che ha 0 elementi. Quindi c'è un modo in cui posso inviare i dati a un HttpHandler?Come inviare i dati a ASP.NET HttpHandler?
risposta
I dati POST che si inviano al gestore HTTP devono essere in formato querystring a=b&c=d
. E puoi recuperarlo sul lato server usando Request["a"]
(restituirà b
) e così via.
Scusa, ma non capisco. POSTATO se lo mando in una Querystring: S. Puoi spiegare un po 'di più quello che stai suggerendo? Se stai dicendo che dovrei creare una querystring e aggiungerla al mio URL di quella non funzionerebbe a causa del limite di lunghezza dell'URL –
Penso che intenda codificare URL dei dati, delimitati da e commerciali (&), proprio come in una stringa di query, eccetto nel corpo della richiesta, non nell'URL. JQuery dovrebbe gestirlo automaticamente. –
Avere un codice da guardare potrebbe aiutare a diagnosticare il problema. Hai provato qualcosa del genere? Codice
jQuery:
$.post('test.ashx',
{key1: 'value1', key2: 'value2'},
function(){alert('Complete!');});
Poi nel metodo ProcessRequest()
, si dovrebbe essere in grado di fare:
string key1 = context.Request.Form["key1"];
è anche possibile controllare il tipo di richiesta nel ProcessRequest() per eseguire il debug del problema.
if(context.Request.RequestType == "POST")
{
// Request should have been sent successfully
}
else
{
// Request was sent incorrectly somehow
}
ho avuto lo stesso problema, e alla fine capito che l'impostazione del tipo di contenuto come "JSON" è stato il tema ...
contentType: "application/json; charset=utf-8"
Questa è una linea di alcuni tutorial popolari suggeriscono di aggiungere nella chiamata $ ajax e funziona bene con ASPx WebServices, ma per qualche motivo non lo fa per HttpHandler che usa POST.
Difficile da individuare poiché i valori nella stringa di query funzionano correttamente (un'altra tecnica vista nel web, sebbene non abbia senso usare POST per questo).
Ho anche avuto lo stesso problema. Era un problema client/AJAX. Ho dovuto impostare l'intestazione di richiesta di chiamata AJAX "ContentType" su
application/x-www-form-urlencoded
per farlo funzionare.
Di fronte a problemi simili. Dopo aver risolto tutti i problemi, c'era ancora una cosa che mi mancava in web.config
- per cambiare verbo come *
O GET,POST
. Dopo che tutto ha funzionato bene.
<httpHandlers>
...
<add verb="*" path="test.ashx" type="Handlers.TestHandler"/>
</httpHandlers>
campi POST sono contenute in
HttpContext.Request.Params
Per recuperarli è possibile utilizzare
var field = HttpContext.Request.Params["fieldName"];
- 1. Inviare dati a JsonP
- 2. Aggiorna una pagina, senza inviare nuovamente i dati POST (ASP.NET)
- 3. Come registrare HttpHandler per tutte le sottocartelle in Asp.Net?
- 4. Come posso inviare i dati a un url usando QNetworkAccessManager
- 5. Node.js - Come inviare i dati da HTML a esprimere
- 6. passa jquery json in asp.net httphandler
- 7. Does un timeout HttpHandler di ASP.NET
- 8. SignalR: Come inviare dati a IConnected.Connect()
- 9. Invio di file in blocchi a HttpHandler
- 10. Come inviare dati nascosti
- 11. Come posso inviare i parametri a Stimulsoft?
- 12. Inviare dati binari a un'applicazione RESTful
- 13. AngularJS: inviare dati a REST API esterno
- 14. ASP.Net (C#) come inviare a HTTPS da una pagina HTTP
- 15. ASP.Net HttpHandler ProcessRequest() che si attiva due volte
- 16. Come posso inviare indietro i dati usando finish?
- 17. firebug: come inviare i dati POST nella console di Firebug?
- 18. Come inviare i dati JSON all'API remota utilizzando Coldfusion CFHTTP
- 19. Android- Come inviare i dati dall'attività al servizio?
- 20. Come inviare i dati JSON tramite API HTTP utilizzando VBScript?
- 21. jQuery UI completamento automatico: come inviare i dati del post?
- 22. Come inviare dati a un'attività in esecuzione da Broadcast Receiver,
- 23. Come inviare i dati XML POST con arricciatura
- 24. Android - Come inviare i dati all'attività di chiamata
- 25. come inviare i dati dei file usando Dajaxice?
- 26. C# Async Webserver - come inviare i dati al client
- 27. ASP.NET - dinamicamente registrare un HttpHandler nel codice (non in web.config)
- 28. Come inviare i dati tramite POST utilizzando in Zend_Rest_Client
- 29. Come posso inviare i dati da onPostExecute in un AsyncTask?
- 30. Come generare automaticamente GUID in forma asp.net mvc4 mentre i dati di inserimento a DB
Che cosa stai usando per fare la richiesta? HttpWebRequest? –
Sto effettuando una chiamata Ajax utilizzando Jquery –
Potresti fornire un esempio di codice di ciò che stai facendo sul lato della richiesta? – Deeksy