当前位置: 首页 > 知识库问答 >
问题:

Java程序试图将字符串发送到nodejs app RESTAPI链接

郤立果
2023-03-14

我有一个nodejs应用程序,正在侦听传入的请求。我使用Java程序调用rest链接。它正在尝试向NodeJS应用程序发送数据。如果字符串是一个单词,则它有效。然而,如果我的字符串足够长或包含特殊字符,它就会出错。

为了发送可能包含至少100-200个字符或更多特殊字符和大小的字符串,我的最佳选择是什么?

java.net.MalformedURLException: Illegal character in URL
        at sun.net.www.http.HttpClient.getURLFile(HttpClient.java:583)
        at sun.net.www.protocol.http.HttpURLConnection.getRequestURI(HttpURLConnection.java:2298)
        at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:513)

将数据发送到Rest链接的Java函数

public void sendDataToNodeJSApp(String create="Creating service APP in org test@ca.capge.com / space Testing as test@ca.capge.com..."){

        URL url;

        try {
            // get URL content

            String a="http://xyz/data/"+create;
            url = new URL(a);
            URLConnection conn = url.openConnection();

            // open the stream and put it into BufferedReader
            BufferedReader br = new BufferedReader(
                               new InputStreamReader(conn.getInputStream()));

            String inputLine;
            while ((inputLine = br.readLine()) != null) {
                    System.out.println(inputLine);
            }
            br.close();

            System.out.println("Done");

        } 

    }

NodeJS(Rest Api链接,用于侦听来自Java应用程序的传入数据)

app.get('/data/:STMT_TEXT', function (req, res) {

var STMT_TEXT = req.params.STMT_TEXT;
console.log(STMT_TEXT);

      res.send("Done");
});     

共有1个答案

桑璞
2023-03-14

您需要对字符串进行URL编码。看见http://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html

 类似资料:
  • 问题内容: 我正在构建Android应用程序的项目的C 方面。我需要一些信息(通过字符串和字符串数组)传递给Java应用程序(通过JNI)。我以前从未做过,相反方向的人没有C 的经验,并承认他们不能真正提供帮助。 我确实找到了以下代码(从这里开始) 但这对我来说毫无意义。通常,我不确定如何将其合并到程序的C ++端,而且我无法确切了解其工作原理。代码是否在执行该行时发出消息?还是在for循环中执行

  • 我想知道将字符串从Java程序传递到Python程序的最简单方法是什么。原因是我使用boilerpipe从web中提取一些文本,然后通过Java程序进行分析,但我还必须使用模式进行一些语义搜索。这只适用于python。 我不需要从python程序中获取结果,只需要python程序可以获取字符串。 我首先考虑让我的python程序听一段对话。txt文件,而java为其提供字符串,但我认为这太难了。

  • 它被解决了。在java代码中打开端口之后,我放了一个,现在它可以工作了。问题是,每次打开端口时,arduino都会重置。当我发送数据时,arduino还没准备好听。 我是arduino和Java的新手,但我做了一个如此简单的程序,我不明白为什么不能工作。 我向对应于arduino(COM5)串行端口发送一个字符串: 和arduino中获取该字符串的代码: while(true)用于测试目的。我没有

  • 我目前正在学习网络,需要一些帮助来找出通过UDP从Java程序向C程序发送字节数组的最简单方法。以前,我用java创建了一个非常简单的客户机和服务器程序,并且能够使用Java类DatagramSocket和DatagramPacket在两个Java客户机/服务器程序之间发送和接收数据包。 但是现在,我有一个网络仿真器,我需要通过它,它是用C编写的,所以我担心它无法识别DatagramSocket和

  • 问题内容: 我正在使用以下命令在ubuntu中连接“ / bin / bash”: 这里的cmd是一个字符串,其中包含我从进程读取和写入的不同命令。 现在我遇到了一种情况,我使用ssh登录到远程机器,并且在将信息写入ext进程时,要从远程计算机注销,我必须发送如下控制字符: 为了正常退出会话并返回我的本地计算机。假设cmd是String类型,我如何将此chracter 写入进程? 问题答案: AS

  • 问题内容: 我在Java程序中有两个字符串,我想以某种方式混合以形成两个新字符串。为此,我必须从每个字符串中提取一些构成字符并将其添加以形成新的字符串。我有这样的代码(this.eka和this.toka是原始字符串): 我正在获取.charAt(x)部分的数字,那么如何将字符转换为字符串? 问题答案: 只使用永远使用代替 例如,当位置arent不是固定值而变量 其中x,y,z是保存从中提取位置的