I have a code which looks like this, It's basically a JSON request which I need to pass to the server and code in PHP looks like this:
<?php
$client_secret= '';
$data= array(
'email' => '**********',
'password' => '******',
'client_id' => '*******'
);
$api_url='******';
$json_data=json_encode($data);
$signature_string = md5($json_data . $client_secret);
$post_data = 'signature='.$signature_string.'&data='.urlencode($json_data);
$curl = curl_init($api_url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($curl);
print_r($result);
curl_close($curl);
?>
And this works fine in PHP. So now I'm trying to translatet this code into C#.
What I did so far is:
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://url");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
string client_secret = "*****";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"email\":\"******\"," +
"\"password\":\"******\"}" +
"\"client_id\":\"******\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
string resp = string.Empty;
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
resp = streamReader.ReadToEnd();
}
return resp;
Basically I now have my data in JSON format. What now I need to do is replicate the PHP's md5 function to create a MD5 hash out of my client_secret string + JSON string which was created in previous step and then simply post the data string to server.
Can someone help me out with this ?