这是在Gatway Api URL中传递数据的格式。
string postString = "key=" + keys +
"&command=" + method +
"&hash=" + Hashed +
"&var1=" + var1;
之后,使用post方法传递数据,我得到数组格式的响应,当我使用Jobject进行转换时,得到错误;当我用C#开发时,如何获得每个令牌值。
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
WebRequest myWebRequest = WebRequest.Create(Url);
myWebRequest.Method = "POST";
myWebRequest.ContentType = "application/x-www-form-urlencoded";
myWebRequest.Timeout = 180000;
StreamWriter requestWriter = new
StreamWriter(myWebRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();
StreamReader responseReader = new
StreamReader(myWebRequest.GetResponse().GetResponseStream());
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader(ReceiveStream, encode);
string response = readStream.ReadToEnd();
JObject account = JObject.Parse(response); //Here getting Error
String status = (string)account.SelectToken("transaction_details." +
var1 + ".status");
这是我得到回复的格式
这是生成的错误
答案 0 :(得分:0)
您必须首先将1双引号替换为2,然后反序列化响应对象
response= response .Replace("\"", "\"\"");
var res = JsonConvert.DeserializeObject(response);
JObject account = JObject.Parse(res);
答案 1 :(得分:0)
我不知道您能到达那里什么,似乎API试图为您提供在浏览器中看起来不错的东西。
如果您想取回JSON,则必须传达您的愿望:
myWebRequest.Accept = "application/json";
要使该属性可用,您必须先将Web请求强制转换为HttpWebRequest
:
代替:
WebRequest myWebRequest = WebRequest.Create(Url);
做
var myWebRequest = (HttpWebRequest)WebRequest.Create(Url);