精华内容
下载资源
问答
  • Log.d("URL", convertURL(URL)); request.setURI(new URI(URL)); HttpResponse response = client.execute(request); bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent...

    这是我的代码:

    HttpClient client = new DefaultHttpClient();

    client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android");

    HttpGet request = new HttpGet();

    request.setHeader("Content-Type", "text/plain; charset=utf-8");

    Log.d("URL", convertURL(URL));

    request.setURI(new URI(URL));

    HttpResponse response = client.execute(request);

    bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

    StringBuffer stringBuffer = new StringBuffer("");

    String line = "";

    String NL = System.getProperty("line.separator");

    我不知道我的网址中有哪个错误:

    http://localhost/CyborgService/chatservice.php?action=recive_game&nick_sender=mkdarkness&pass=MV030595&date_last=2012-11-18 09:46:37&id_game=1

    我已经使用了一个函数来转换URL,但是没有用.但是,如果我在浏览器中尝试打开此URL,则会成功打开.

    这是我的错误:

    06001

    解决方法:

    您的URL中有一个空格,位置127.日期生成为“date_last = 2012-11-18 09:46:37”,这会在打开URL时导致错误.

    URL中没有正式接受空格,尽管您的浏览器会很乐意将其转换为“”或“”,这两者都是URL中空格的有效表示.你应该转义所有字符:你可以用“”替换空格,或者只是通过URLEncoder传递字符串并完成它.

    要使用URLEncoder,请参阅例如this question:仅使用URLEncoder编码参数值,而不是完整的URL.或者使用URI的构造函数之一,它具有一些参数,而不是一个参数.您没有显示构造URL的代码,因此我无法明确地对其进行评论.但是如果你有一个参数mapMap的地图,它将是这样的:

    String url = baseUrl + "?";

    for (String key : parameterMap.keys())

    {

    String value = parameterMap.get(key);

    String encoded = URLEncoder.encode(value, "UTF-8");

    url += key + "&" + encoded;

    }

    有一天我们可以讨论为什么Java需要设置编码然后要求编码为“UTF-8”,而不是仅使用“UTF-8”作为默认编码,但是现在这个代码应该做的伎俩.

    标签:java,url,android,uri

    来源: https://codeday.me/bug/20190718/1494350.html

    展开全文
  • URL非法字符

    2014-09-24 11:35:41
    '[',']','\'等都是非法字符,new HttpGet(setServerUrl+ serverPath);的时候 IllegalCharacterException 处理: serverPath = serverPath.replace("\\", "/");//“\\”转义斜杠 serverPath = serverPath....

    '[',']','\'等都是非法字符,new HttpGet(setServerUrl+ serverPath);的时候IllegalCharacterException

    处理:

    serverPath = serverPath.replace("\\", "/");//“\\”转义斜杠
    serverPath = serverPath.replace("[", "%5b");
    serverPath = serverPath.replace("]", "%5d");

    HttpGet get = new HttpGet(setServerUrl+ serverPath);

    展开全文
  • + URL 中+号表示空格 %2B2. 空格 URL中的空格可以用+号或者编码 %203. / 分隔目录和子目录 %2F4. ? 分隔实际的 URL 和参数 %3F5. % 指定特殊字符 %256. # 表示书签 %237. & URL 中指定的参数间的分隔符 %268. =...

    十六进制值1. + URL 中+号表示空格 %2B

    2. 空格 URL中的空格可以用+号或者编码 %20

    3. / 分隔目录和子目录 %2F

    4. ? 分隔实际的 URL 和参数 %3F

    5. % 指定特殊字符 %25

    6. # 表示书签 %23

    7. & URL 中指定的参数间的分隔符 %26

    8. = URL 中指定参数的值 %3D

    解决的方法:

    replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.

    而str.replace(/\-/g,"!")则可以替换掉全部匹配的字符(g为全局标志)。

    replace()

    js中替换字符变量如下:

    data2=data2.replace(/\%/g,"%25");

    data2=data2.replace(/\#/g,"%23");

    data2=data2.replace(/\&/g,"%26");

    其他一些资料。。。仅供参考。。。

    在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端java的encodeURI函数编码的URL,结果就不一样。

    java对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

    java中的编码方法:

    escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +

    encodeURI()方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

    encodeURIComponent ()方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )

    因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。

    另外,encodeURI/encodeURIComponent是在java1.5之后引进的,escape则在java1.0版本就有。

    1、  传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

    2、  进行url跳转时可以整体使用encodeURI

    例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

    3、  js使用数据时可以使用escape

    例如:搜藏中history纪录。

    4、  escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

    最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

    escape不编码字符有69个:*,+,-,.

    展开全文
  • >指数89是{ – 这是一个非法的人物? 我尝试这样做 – 用{代替大括号,但它没有帮助 ...

    我收到一个错误:

    W/System.err(32720): java.lang.IllegalArgumentException: Illegal character in query at index 89: https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f={%20mean0%22:%201}&apiKey=myApiKey

    String apiURI = "https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f={%22mean0%22:%201}&apiKey=myApiKey";

    >当我将此URI粘贴到浏览器中时,它可以正常工作.

    >当我粘贴到浏览器中,打开它,然后将URI复制回我的代码,它没有帮助.

    >指数89是{ – 这是一个非法的人物?

    我尝试这样做 – 用{代替大括号,但它没有帮助

    https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f=%7B"mean0":%201%7D&apiKey=myApiKey

    任何人?

    编辑:

    String query = "https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f={\""+arrayName+"\":%201}&apiKey=myApiKey";

    try {

    query = URLEncoder.encode(query, "utf-8");

    } catch (UnsupportedEncodingException e1) {

    // TODO Auto-generated catch block

    e1.printStackTrace();

    }

    String apiURI = query;

    没有帮助.现在我得到:

    05-23 22:13:21.855: E/SendMail(12428): Target host must not be null, or set in parameters. scheme=null, host=null, path=https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f={"mean0":%201}&apiKey=myAPI

    如果我在查询声明中更改为空格,那么我得到:

    05-23 22:14:51.435: E/SendMail(13164): Target host must not be null, or set in parameters. scheme=null, host=null, path=https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f={"mean0":+1}&apiKey=myAPI

    另外如果我不在中间使用arrayName字符串,只是直接从浏览器使用字符串,效果是一样的!

    最佳答案 从我所看到的,每次尝试都会错过某些东西,编码不应该的东西,例如’?’,或者对某些东西进行双重编码,从而对url编码中的’%’进行url编码.

    如何只是编码你关心转义的位,并完成一次?

    String apiURI =

    "https://api.mongolab.com/api/1/databases/activity_recognition/collections/entropy_data?f="

    + URLEncoder.encode("{\"mean0\": 1}", "UTF-8")

    + "&apiKey=myApiKey";

    如果你想使用java.net.URI,你必须单独包含查询字符串,例如:

    new URI(

    "https",

    "api.mongolab.com",

    "/api/1/databases/activity_recognition/collections/entropy_data",

    "f={\"mean0\": 1}&apiKey=myApiKey",

    null

    ).toURL()

    展开全文
  • } 不太想用POST,又由于是内嵌的Tomcat,所以为了开发方便还是想通过修改springboot配置的方式去解决, 刚看了下 server.tomcat.* 相关的配置,暂时没有找到解决非法字符的问题### 问题描述 相关代码 // 请把代码...
  • url=“http://www.baidu.com?body={}” {}在某些情况下读取非法 这时需要将其转义 java.net.URLEncoder.encode("{")
  • Tomcat版本升级之后对URL的验证加强,降低Tomcat的版本可以解决URL非法字符的问题 本人是用的springboot集成的Tomcat,所以需要先查询当前Tomcat的版本 打开maven资源库路径下的org\springframework\boot\...
  • java-如何找出字符串是否已被URL编码?如何检查字符串是否已经编码?例如,如果我对TEST==进行编码,则得到TEST%3D%3D。如果我对最后一个字符串再次进行编码,则得到TEST%253D%253D,在这样做之前,我必须知道它是否...
  • 特殊特殊字符的含义 ———————————————————————————— 字符 特殊字符的含义 URL编码 # 用来标志特定的文档位置 %23 % 对特殊字符进行编码 %25 & 分隔不同的变量值对 %26 + 在变量值中表示...
  • private static void call(String body) throws IOException{HttpURLConnection con = ...con = (HttpURLConnection)new URL("http://127.0.0.1:8080").openConnection();con.setRequestProperty("Accept-Charset"...
  • /*** 判断请求url是否非法* @param url* @return*/public static boolean isValidRequestUri(String url) {if (StringUtils.isNotEmpty(url)) {if (hasSpecialChar(url)) {return true;}try {/**尝试decode两次判断...
  • Url出现非法参数异常

    千次阅读 2016-01-26 13:13:59
    使用get方式请求数据,参数在url后。   开始以为是字符编码问题,当都用utf-8之后发现没用,然后有些手机不会报错,有些手机会;   public static void getRemoteJsonContent(final Map<String, ...
  • url非法字符有哪些

    2019-09-27 19:20:43
    URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。(ASCII参考) URL中的特殊字符 特殊含义 十六进制 值 1.+ 表示...
  • 使用Spring Boot框架,通过过滤器过滤不存在的URL,将这些非法URL转发或重定向到自定义错误页面。 二、实现 API: WebApplicationContext:用于获取全局信息 ServletRequest:用于获取请求地址的URI 补充: URL和...
  • 一旦网站部署到互联网上,就会受到一些非法的请求,而这些请求的Url都是一些特定的路径或带上一些无关请求的字符用于探测一些服务存在的问题;还有这些请求会落到日志中,导致日志臃肿和转发到后台...
  • 对于HTTP URL非法字符的处理方法

    千次阅读 2015-07-29 14:50:32
    经常碰到HTTP URL中参数如果存在一些非法字符,会导致错误,所以必须进行一些转义之类的操作,以下是方法,做下记录,省的自己每次都去网上找 需要注意的是只对参数做处理,不要对整个url做处理 public class ...
  • url中中文字符解码 ...替换非法字符 if ! str.valid_encoding? p str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')end 转载于:https://www.cnblog...
  • URL的参数中一定要避免的非法字符

    千次阅读 2016-12-30 11:13:31
    URL中的参数中不能有空格、双字节字符(如汉字),否则会破坏URL中参数含义的准确性,成为非法URL,访问该URL后会报:Server returned HTTP response code: 505 for URL错误! 解决方法(以参数中含有空格为例...
  • 一旦网站部署到互联网上,就会受到一些非法的请求,而这些请求的Url都是一些特定的路径或带上一些无关请求的字符用于探测一些服务存在的问题;还有这些请求会落到日志中,导致日志臃肿和转发到后台服务带来处理上的...
  • url在传输时不允许的一些字符串,参考自:http://www.ietf.org/rfc/rfc1738.txt 以下字符用java正则替换为"_",一句话搞定: "{", "}", "|", "\", "^"...
  • 因项目中有一些消费接口,想对其进行加密处理,一般app端扫码之后就会调用区分是否是合法用户,如果是非法用户就进行拦截。中间是不是需要app端或者后台进行某种协议区分?各位大佬有做个类似的,希望给个建议或者...
  • log.info("非法路径请求url-----》"+url); hresponse.sendRedirect("/HrtApp"); return; } } // 已通过验证,用户访问继续 filterChain.doFilter(request, response); return; } public void ...
  • 几种过滤URL和FORM中非法字符的方法

    万次阅读 2007-12-17 09:31:00
    ASP过滤URL和FORM中非法字符第一种:%检查URL输入 限制非法字符url=LCase(request.querystring())ip=request.ServerVariables("REMOTE_ADDR")pos1=instr(url,"%")pos2=instr(url,"")pos3=instr(url,";")pos4=instr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,248
精华内容 499
关键字:

url非法