小编Rus*_*uss的帖子

Apache HttpClient制作多部分表单帖子

我对HttpClient非常环保,而且我发现缺少(和或明显不正确)的文档非常令人沮丧.我正在尝试使用Apache Http Client实现以下帖子(如下所列),但不知道如何实际执行此操作.我将在下周的文档中埋葬自己,但也许更有经验的HttpClient程序员可以尽快给我一个答案.

帖子:

Content-Type: multipart/form-data; boundary=---------------------------1294919323195
Content-Length: 502
-----------------------------1294919323195
Content-Disposition: form-data; name="number"

5555555555
-----------------------------1294919323195
Content-Disposition: form-data; name="clip"

rickroll
-----------------------------1294919323195
Content-Disposition: form-data; name="upload_file"; filename=""
Content-Type: application/octet-stream


-----------------------------1294919323195
Content-Disposition: form-data; name="tos"

agree
-----------------------------1294919323195--
Run Code Online (Sandbox Code Playgroud)

java multipartform-data apache-httpclient-4.x

70
推荐指数
2
解决办法
8万
查看次数

Cygwin - 从"运行命令"运行脚本静默

我有脚本让我们说:

C:\foo.bsh
Run Code Online (Sandbox Code Playgroud)

我希望能够通过windows run命令运行此命令:

Start -> Run
Windows Key + R
Run Code Online (Sandbox Code Playgroud)

并输入类似'foo'的小东西并点击返回.

但是,我不希望cmd提示可见.此脚本为IDE执行一些预处理.我不希望cmd提示符在IDE进程的生命周期内打开.

我试过了:

1)使用以下内容创建bat文件:

c:\cygwin\bin\bash --login "C:\foo.bsh" (this fails because it keeps a cmd open)
Run Code Online (Sandbox Code Playgroud)

2)使用bat_2_exe_converter将上面的bat文件转换为exe(不使cmd静音)

想法?

编辑:到目前为止,解决方案建议从实际的cygwin shell中输入内容.我试图通过缩短我可以在Windows运行命令中输入的内容来获得更快的解决方案.此外,nohup command; exit它不会自动杀死盒子 - 但是我可以手动杀死它而不会杀死IDE进程.run命令接受快捷方式(.lnk's),bat's,exe's.

command-line cygwin silent

36
推荐指数
4
解决办法
7万
查看次数

是否存在密钥库的命名约定(java)

我是第一次使用java密钥库.密钥库是否有标准的扩展名/后缀?它们通常被命名为.ks吗?如果它是一个java密钥库我应该使用.jks?如果一般被接受,我想遵循命名约定.

java naming-conventions keystore

9
推荐指数
1
解决办法
4375
查看次数

正则表达式字符类后跟 ?+ 是什么意思?

我有一个正则表达式,其中包含一个字符类,后跟两个“cadinality”字符 - 不确定它们还叫什么。如果重要的话,它运行的正则表达式引擎是内置的 java 正则表达式。java 字符串文字是:

"[a-zA-Z]{2}[ -]?+\\d{6}"
Run Code Online (Sandbox Code Playgroud)

或者在非爪哇地区:

[a-zA-Z]{2}[ -]?+\d{6}
Run Code Online (Sandbox Code Playgroud)

那么该[ -]?+部分的具体含义是什么?据我所知,从测试来看,好像 + 甚至不存在(最初我认为由于“操作顺序”,我没有意识到它可能会应用于它前面的所有内容,就像有括号一样那里)。

以下通过:

ab123456, ab-123456, ab 123456
Run Code Online (Sandbox Code Playgroud)

以下失败:

aa--123456, aa  123456, aa - -123456, aa-aa-123456
Run Code Online (Sandbox Code Playgroud)

regex

5
推荐指数
1
解决办法
2622
查看次数

无法使用 java / keytool 签署 dig sig

我基本上直接从 keytool 示例页面创建了一个证书:

keytool -genkey -dname "cn=Anything, ou=Anything, o=Anything, c=US" -alias business -keypass kpi135 -keystore C:\mykeystore -storepass ab987c -validity 1095

我正在尝试访问此证书并使用私钥部分对一部分文本进行数字签名以与第三方进行身份验证。下面是我正在尝试的代码:

   //Add bouncyCastle as a provider
   Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

   KeyStore keystore = KeyStore.getInstance("JKS");
   keystore.load(new FileInputStream("C:\\mykeystore"), "ab987c".toCharArray());
   Signature sig = Signature.getInstance("MD5withRSA", "BC");
   PrivateKey privateKey = (PrivateKey)keystore.getKey("business", "kpi135".toCharArray()); //Exception here
   sig.initSign(privateKey);
   sig.update("myUID__myNonce".getBytes());
   byte[] digitalSignature = sig.sign();

   System.out.println("Signature Formulated: " + digitalSignature);
Run Code Online (Sandbox Code Playgroud)

我收到以下异常:

java.security.InvalidKeyException: Supplied key (sun.security.provider.DSAPrivat
eKey) is not a RSAPrivateKey instance
        at org.bouncycastle.jce.provider.JDKDigestSignature.engineInitSign(Unkno
wn Source)
        at java.security.Signature$Delegate.engineInitSign(Signature.java:1095)
        at java.security.Signature.initSign(Signature.java:480)
        at MainClass.<init>(MainClass.java:15)
        at …
Run Code Online (Sandbox Code Playgroud)

java security certificate keytool x509certificate

4
推荐指数
1
解决办法
4478
查看次数

使用String(byte [])作为映射的键

我有一个程序,从一个数据库中获取id作为一个返回byte[].我想使用这些ID(字节数组)作为地图的键.默认情况下,这不起作用,因为比较的是"对象相等"而不是"内容相等".

我尝试过的下一件事似乎是用new String(byte[])构造函数实例化一个String .虽然这似乎有效但我知道我正在做一些可能很狡猾的事情.我没有指定依赖于系统默认值的编码.我也不知道所有字节序列是否在每个编码中都有表示.

被"转换" byte[]String了做的目的map.put()map.get()安全吗?是否有边缘情况我不考虑这种方法会无意中造成碰撞(其中2种byte[]不同内容可能会变得相同String).

注意:地图存储在内存中,仅适用于单个应用程序运行.我编写的简单包装类,如果这种方法可行,可以让我的生活更轻松:

public class Cache {

    Map<String, Set<String>> cache = new HashMap<String, Set<String>>();

    public Cache() {}

    public void put(byte[] key, Set<String> value) {
        cache.put(new String(key), value);
    }

    public Set<String> get(byte[] key) {
        return cache.get(new String(key));
    }
}
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
729
查看次数

XSD规范中词汇表述与规范表述之间的区别

我今天参考了XSD规范,以查找十进制类型的定义。在其中,我发现了两个不同的数据类型定义冲突,一个词法定义和一个下面引用的规范定义:

3.2.3.1词汇表示

十进制具有一个词法表示,由有限长度的十进制数字序列(#x30-#x39)组成,这些序列之间用句点分隔,作为十进制指示符。允许使用可选的前导符号。如果省略符号,则假定为“ +”。前导零和尾随零是可选的。 如果小数部分为零,则可以省略周期和随后的零。例如:-1.23、12678967.543233,+ 100000.00、210。

3.2.3.2规范表示

十进制的规范表示是通过禁止词法表示(第3.2.3.1节)中的某些选项来定义的。具体来说,禁止前面的可选“ +”号。小数点是必需的。禁止前导和尾随零,但必须遵守以下规定:小数点左右必须至少有一位数字,该数字可能是零。

总而言之,如果小数的小数部分为零,则词法表示允许不存在小数点和尾随零,而规范表示则明确指出需要十进制。

以下哪个定义是“正确的”?我的应用程序正在发送词汇表示形式,而正在使用的应用程序正在期望规范表示形式。

xml xsd specifications xsd-validation

4
推荐指数
1
解决办法
1014
查看次数

OpenLayers Hello World示例不适用于HTML5?

我正在尝试开始在我的网站上使用地图API.我最初看起来是openstreetmap但很快就意识到我需要使用openlayers如果我想要显示地图.我仍然模糊这两者之间的关系,所以我会标记它们.我只想尝试一个问候世界的例子.

OpenLayers有这个页面引导您完成第一个实现.入门页面声明为您的第一个示例使用以下代码:

<html>
<head>
  <title>OpenLayers Example</title>
    <script src="http://openlayers.org/api/OpenLayers.js"></script>
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
        var map = new OpenLayers.Map('map');
        var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
            "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
        map.addLayer(wms);
        map.zoomToMaxExtent();
      </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果您将页面声明为html5,则此代码不起作用.只要添加此标头,示例就会停止工作:

<!DOCTYPE html>
<meta charset='utf-8'> 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.该页面相当简单,不幸的是我对html5和openlayers知之甚少,知道问题可能是什么,但已经缩小了问题所在.谁能解释解决方案是什么以及为什么?

html5 openlayers openstreetmap

2
推荐指数
1
解决办法
1210
查看次数

删除两个按钮链接之间的短划线

我在页面上创建了一个带有两个按钮(即链接)的页面.由于未知原因,在chrome,ff和ie中的按钮之间显示短划线.我试图在按钮之间获得一点点空间而不是这个奇怪的破折号.以下是一些复制问题的简单示例代码:

<!DOCTYPE html>
<meta charset='utf-8'> 

<html>
    <head><title>Button Dashes?</title></head>
    <body>
        <div>
            <a href="http://www.google.com">
                <button>Google</button>
            </a>
            <a href="http://www.yahoo.com">
                <button>Yahoo</button>
            </a>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能删除按钮之间的短划线?

html button hyperlink

1
推荐指数
1
解决办法
2201
查看次数

Java XPath API - 获取表示子树的字符串

我的问题不是关于xpath语法,而是与围绕xpath的java API有关.考虑以下xml:

<wrapper>
    <metadata>
        <somefield>somevalue</somefield>
        <anotherfield>othervalue</anotherfield>
    </metadata>
    <data>
        <some>
            <unique>
                <xml>
                    <structure>stuff</structure>
                </xml>
            </unique>
        </some>
    </data>
</wrapper>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码轻松地使用xpath获取元数据字段:

 XPath xp = XPathFactory.newInstance().newXPath();
 Node node = (Node) xp.evaluate("/wrapper/metadata/somefield", xmlDoc, XPathConstants.NODE);
 String somefield = node.getFirstChild().getNodeValue();
Run Code Online (Sandbox Code Playgroud)

我正在努力学习如何从标记开始获取表示xml 子树的字符串<some>.换句话说,我编写什么代码来获取一个字符串,打印出来时会打印出以下内容?xpath查询将是"/ wrapper/data/some",但我不知道如何正确使用xpath api.

<some>
    <unique>
        <xml>
            <structure>stuff</structure>
        </xml>
    </unique>
</some>
Run Code Online (Sandbox Code Playgroud)

java xml xpath subtree

1
推荐指数
1
解决办法
1485
查看次数