Non riesco a trovare il modo migliore per codificare i parametri POST in una chiamata al server. Scrivo un client C# che verrà servito da un server PHP. Voglio consentire una grande quantità di flessibilità nei parametri, quindi il mio piano attuale è quello di avere un singolo parametro che utilizzo JSON per la codifica. Per esempio:Come codificare i parametri POST HTTP (client C# su server PHP)?
params = {"object":"Main","function":"doecho","params":["echothis...."]}
sto usando il WebRequest oggetto e contentType di C# "/ x-www-form-urlencoded domanda; charset = UTF-8". I dati arrivano al server e tutto funziona come previsto fino a quando aggiungo caratteri JSON illegali nei dati.
Ad esempio, se utilizzo i seguenti dati, non posso eseguire json_decode sul lato server. Il server appare allo spegnimento automatico del% 40 in una doppia-virgolette (") quando l'ho letto con $ this-> GetRequest() -> getparams();. (Zend_Framework)
params = {"object":"Main","function":"doecho","params":["echothis%25%5d%22%40%3d%26...."]}
Qual è la migliore Ho bisogno di base64 codificare i dati? C'è qualcosa di ovvio mi manca con il tipo di contenuto o un'impostazione php?
Ho il controllo completo sul client e sul server, quindi mi piacerebbe sapere che cosa è il diritto/cosa migliore da fare.
Sì, questo ha senso per me. Grazie! – Jeff
Poiché il nit-picking può prevenire bug, si noti che "params" (ma non il "=") dovrebbe anche essere codificato con URI. Perché so che i "param" quando codificati con URI sono ancora "params", non lo faccio come scorciatoia, ma se fosse "párams" o "i param", allora dovrebbe essere. –