gpt4 book ai didi

C# JSON 响应执行第二个 JSON 请求

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:55 25 4
gpt4 key购买 nike

我现在使用 JSON 有一段时间了,但这是我无法解决的问题。

程序是用 C# 编写的,有一个名为 CreateWebRequest() 的方法:

public void CreateWebRequest()
{
CurrentTime = DateTime.Now;
target = link;
request = WebRequest.Create(target) as HttpWebRequest;
request.ContentType = "application/json; charset=utf-8";
request.Method = "PUT";
request.ServicePoint.Expect100Continue = false;
string postData = jsonString;
System.Console.WriteLine("POSTDATA: " + postData);
StreamWriter requestWriter;
using (requestWriter = new StreamWriter(request.GetRequestStream()))
{
requestWriter.Write(postData);
}

}

获取结果的另一个函数称为:CreateWebResponse():

public void CreateWebResponse()
{
WebResponse response;

string text;
try
{
response = (HttpWebResponse)request.GetResponse();
}

catch (WebException e)
{
MessageBox.Show(e.Message);
return;
}

using (var sr = new StreamReader(response.GetResponseStream()))
{
text = sr.ReadToEnd();
}

APIresult apiresult = JsonConvert.DeserializeObject<APIresult>(text); //Deserialize the text

}

这些函数都可以正常工作,只有一个问题:代码执行了两个请求。

当我将相同的 JSON 放入 mozilla FireFox 的 RESTClient 中时,JSON 工作正常。当我只使用 CreateWebRequest() 时,它也很有效,但是当我使用这两种方法时,代码似乎创建了第二个请求?

是否可以只创建一个响应?将这两个函数组合成一个直接创建响应的函数?

我尝试了其他解决方案并将它们放在一起,但似乎都不起作用。当我要求响应时,代码不再正常工作并创建了两个请求。

有人解决吗?

提前致谢。

我调用的 JSON 函数有几个 if 语句,并且根据 Firefox 中的 RESTClient 可以正常工作。下面的代码显示了被 RESTClient 正确调用并被 C# 代码调用两次的代码:

$sql = 'SELECT...';
$result = $db->sql_query($sql);//search for member id.
if($row = $db->sql_fetchrow($result)){//when found, the user has access.
$member_id = $row['member_id'];
$sql = 'SELECT ...';
$result = $db->sql_query($sql);//search for last login today.
if($row = $db->sql_fetchrow($result)){//if the user has logged in today update the row.
$row_check_in_timestamp = $row['check_in_timestamp'];
$sql = 'UPDATE ...';//update the row with the check out timestamp
$db->sql_query($sql);
break;
}else{//the user hasn't logged in yet today, log in.
$start_session_array = array(
'club_id' => (int)$club_id,
'member_id' => (int)$member_id,
'check_in_timestamp' => (int)time(),
);
$sql = 'INSERT ...';//check user in and add a new row in the database
$db->sql_query($sql);
break;
}
}else{
break;
}

最佳答案

已解决:我很抱歉大家并感谢所有的回复,但我已经找到了问题所在。我有一个旧版本作为服务一直在运行,并进行了第二次 JSON 调用。

我通过在服务器端记录调用和阻止代码来找到它,这些代码在我自己的代码中调用 JSON 来解决这个问题。

关于C# JSON 响应执行第二个 JSON 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com