Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RESTAPI JSON传输_C#_Android_Rest - Fatal编程技术网

C# RESTAPI JSON传输

C# RESTAPI JSON传输,c#,android,rest,C#,Android,Rest,我正在构建一个Android客户端,它通过发送和接收JSON与api进行通信 我的问题是,如果我的api返回200状态,我是否可以假设从我的Android应用程序(sessionID,设备详细信息)传递到我的api的所有数据,以及从api传递回我的Android应用程序的所有数据,都已被接收并相应处理,或者我是否应该检查发送和接收的数据的大小 谢谢。 詹姆斯。简短的回答是:是的 HTTP以及扩展的REST假定有一个可靠的传输层协议,这意味着您要么接收消息的每个部分,要么不接收消息的任何部分。因此

我正在构建一个Android客户端,它通过发送和接收JSON与api进行通信

我的问题是,如果我的api返回200状态,我是否可以假设从我的Android应用程序(sessionID,设备详细信息)传递到我的api的所有数据,以及从api传递回我的Android应用程序的所有数据,都已被接收并相应处理,或者我是否应该检查发送和接收的数据的大小

谢谢。 詹姆斯。

简短的回答是:是的


HTTP以及扩展的REST假定有一个可靠的传输层协议,这意味着您要么接收消息的每个部分,要么不接收消息的任何部分。因此,如果您收到任何响应(不只是200 OK),您自然可以假定您的整个请求已成功发送到服务器,并且您已收到整个响应。

一个简单的解决方法是在最后捆绑一个接收到的对象:

[{normal objects}….,{“received”}:“yes”}]

list.get(list.size()-1)并检查是否收到

然后按常规循环到list.size()的最大值-1


就像我说的,这是一个解决方案…

你应该尝试在chrome中点击端点地址。使用F12启动开发人员工具并检查“网络”选项卡。如果单击api调用的url,屏幕右侧将显示一个名为“response”的选项卡,该选项卡将显示返回的json对象。如果没有对象,则api存在问题。如果是填充对象,则问题在于对象的渲染方式。我希望这有帮助?嗨,谢谢,我没有任何问题,所有的东西都在被发送/接收…我只是不确定未来的数据传输是否会出现一些问题。你是如何发送和接收JSON的?如果你担心收到的数据,你可以在api中添加一些验证代码来检查反序列化的请求对象,并返回400个错误的请求响应如果请求对象未通过验证,则编码。这是一种常用的模式。我使用jsonobject从android发送json,mvc模型绑定器创建我的设备详细信息对象,并在我的方法中进行相应的处理…然后如果一切正常,返回一个200,返回数据或相关代码,401,等等。。。然后我在我的Android客户端中检查这段代码,并使用GSON给我一个根据我的结果创建的对象。在接收端不是真的。如果我拔掉响应的数据包1和2之间的插头,您仍然可以读取第一个数据包,但其余的数据将永远不会出现。这取决于更高级别的API,以确定剩余的数据永远不会出现,也不会处理它。Gabe,那么通过3g连接,可能会出现JSON未完全接收的情况?e,当连接在请求的中间丢失时