Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
Java HTML插入后换行参数_Java_Html_Post_Line_Newline - Fatal编程技术网

Java HTML插入后换行参数

Java HTML插入后换行参数,java,html,post,line,newline,Java,Html,Post,Line,Newline,目前我正在尝试使用hilite.me/api格式化Java代码。这一切都正常,但唯一的问题是,\n换行符似乎被忽略,输出只是一条长线。任何人都知道我如何将换行符正确地传递到POST请求中。谢谢 API参数应如下所示:code=要输入的Java代码lexer=要格式化的语言(在本例中为Java) 我的代码: public static final String USER_AGENT = "Mozilla/5.0", HILITE_URL = "http://hilite.me/api"; pub

目前我正在尝试使用
hilite.me/api
格式化Java代码。这一切都正常,但唯一的问题是,
\n
换行符似乎被忽略,输出只是一条长线。任何人都知道我如何将换行符正确地传递到POST请求中。谢谢 API参数应如下所示:
code=
要输入的Java代码
lexer=
要格式化的语言(在本例中为Java)

我的代码:

public static final String USER_AGENT = "Mozilla/5.0", HILITE_URL = "http://hilite.me/api";

public static String hilite(String lang, String code) throws Exception {
    URL obj = new URL(HILITE_URL);
    HttpURLConnection conn = (HttpURLConnection) obj.openConnection();

    conn.setRequestMethod("POST");
    conn.setRequestProperty("User-Agent", USER_AGENT);

    String par = "&code=" + code.replaceAll("\n", "\r\n") + "&?lexer=" + lang;

    conn.setDoOutput(true);
    DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
    dos.writeBytes(par);
    dos.flush();
    dos.close();

    int res = conn.getResponseCode();

    if(res == 200){
        StringBuilder sb = new StringBuilder();
        String in;
        BufferedReader read = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        while((in = read.readLine()) != null)
            sb.append(in + "\n");
        read.close();
        return sb.toString();
    }else{
        System.err.println("UNABLE TO CONNECT! WITH RES: " + res);
        return null;
    }
}

首先,我建议使用高级库来调用最明显的RESTful Web服务。Jersey——JAX-RS的参考实现——应该足够了

仅当由于某种原因而无法实现时,才需要确定web服务支持或采用的编码。显然,在您的情况下,这是默认的
应用程序/x-www-form-urlencoded
。用
+
字符替换空格,用URL编码替换集合之外的任何字符
[0-9A-Za-z]
%HH
用HH表示十六进制ASCII数值)


Class
java.net.URLEncoder
将为您完成这项工作,没有理由不使用它。

我不确定这是否是一个编码错误,或者HttpURLConnection的默认编码方法是什么,但可能它没有正确编码\n

我相信ASCII换行是正确的

%0A
也许可以尝试使用

URLEncoder.encode(code)

所有这一切似乎工作体面的输出是不一样的网站显示。。。