0

正如标题所说。我正在将消息从我的服务器发送到我无法控制的代理中,然后将其发送到我的应用程序中。我所能做的就是发送和接收字符串。是否可以像通常那样在没有输入/输出流的情况下序列化为纯字符串并以这种方式发送?

TIA

更多信息:

public class myClass implements java.io.Serializable {
int h = "ccc";
int i = "bbbb";
String myString = "aaaa";
}

例如,我有这门课。现在我想序列化它并将其作为我的 HTTPpost 中的字符串发送并发送到代理,对此阶段无能为力:

    HttpPost post = new HttpPost("http://www.myURL.com/send.php?msg="+msg);

然后在另一端接收 msg 作为字符串并将其转换回来。

没有许多其他图书馆,这很容易做到吗?

4

3 回答 3

2

是的。

这是每天使用 JSON 和 XML 完成的,仅举几例易于格式化和解析的字符串格式。(阅读有关 JAXRS 以了解使用 JSON 格式的字符串来执行此操作并进行传输的方法。或者,阅读有关 JAXB 的内容,它将格式化为 XML,但不会中断字符串的通信。)

您可以以 CSV 格式执行此操作。

您可以在固定的字符字段中执行此操作。

摩尔斯电码不是一个不同的概念,只是它以字符串开头并转换为短促和长促的哔哔声。

它的工作方式是这样的:

  1. 有一些代码可以传递一个对象,它会返回一个已知格式的字符串。
  2. 您以某种方式将字符串发送到另一台服务器。一些发送字符串的方法对长度有限制。
  3. 另一台服务器接收该字符串。
  4. 使用它的格式知识,其他服务器解析出字符串内容并使用它。

一些注意事项:

  • 如果两台服务器都使用 Java(或 C#、Python 或 PHP 或其他),那么格式化和解析就会变得对称。您从某种类型的 Java 对象开始,并以相同类型的另一个 JVM 中的 Java 对象结束。但这不是给定的。您可以将值存储在一个服务器中的自定义 POJO 和另一个服务器中的 Map 中。

  • 如果你编写代码来格式化和解析,只要内容简单并且不违反传输规则,这似乎真的很容易。例如,如果您在 HTTP get 的查询部分中发送,则字符串中不能有任何 & 字符。

  • 如果您使用现有的库,您可以利用其他人获得的关于如何做到这一点而不会出错的知识。

  • 如果您对字符串使用标准格式,则很容易向其他人解释发生了什么。如果您的项目有效,则第三台服务器可能希望处于通信循环中,并且如果它由其他人控制......

  • 格式化比解析更容易。其他人已经解决了许多陷阱。如果您这样做是为了学习不做事的方法并提高自己的知识库,请务必自己动手。如果您想要坚如磐石的性能,请使用现有的标准库和格式。

于 2013-04-16T21:55:03.507 回答
1

看看XStream。它序列化为 XML,使用起来非常简单。

看看那里的两分钟教程

于 2013-04-16T22:04:16.863 回答
0

对的,这是可能的。您可以使用 ajax 将字符串序列化为 json 对象,并使用 ajax.post 事件(javascript 事件)将其返回到服务器。

于 2013-04-16T21:57:08.953 回答