Bir PHP web sunucusuna bir dize Json sorarken ben alışılmadık garip davranışlar karşılaşmak duyuyorum. Ben Json dize oluşturmak için JsonTextWriter nesnesini kullanın. Sonra bir POST isteği olarak Json dize gönderir. Yorum bakınız. Kod HTML yanıtı doğru çıktı iade edilir, ancak bir tarayıcıda görüntülendiğinde, web sayfası null ya da dizi (0) {} ya da görüntüler.
private void HttpPost(string uri, string parameters)
{
WebRequest webRequest = WebRequest.Create(uri);
webRequest.ContentType = "application/x-www-form-urlencoded"; // <- Should this be "application/json" ?
webRequest.Method = "POST";
byte[] bytes = Encoding.UTF8.GetBytes(parameters);
string byteString = Encoding.UTF8.GetString(bytes);
Stream os = null;
try
{ // Send the Post Data
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
Console.WriteLine(String.Format(@"{0}", byteString)); // <- This matches the Json object
}
catch (WebException ex)
{ //Handle Error }
try
{ // Get the response
WebResponse webResponse = webRequest.GetResponse();
if (webResponse == null) { return null; }
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
Console.WriteLine(sr.ReadToEnd().Trim()); // <- Server returns string response (full HTML page)
}
catch (WebException ex)
{ //Handle Error }
}
Sunucuda ilgili PHP kodu:
$json = json_encode($_POST); # Not 'standard way'
var_dump(json_decode($json));
Herhangi bir öneri büyük takdir.
Teşekkürler