OAuth:如何在java中按字典字节值顺序对字符串排序
您好,我正在尝试从google API获取请求令牌。为了获取请求令牌,我必须按照java代码段中的字典字节值顺序对参数字符串进行排序OAuth:如何在java中按字典字节值顺序对字符串排序,java,oauth,2-legged,Java,Oauth,2 Legged,您好,我正在尝试从google API获取请求令牌。为了获取请求令牌,我必须按照java代码段中的字典字节值顺序对参数字符串进行排序 String datastring=URLEncoder.encode("oauth_version", "UTF-8")+"="+URLEncoder.encode("1.0", "UTF-8"); datastring+="&"+URLEncoder.encode("oauth_nonce", "UTF-8")+"="+URLEncoder.e
String datastring=URLEncoder.encode("oauth_version", "UTF-8")+"="+URLEncoder.encode("1.0", "UTF-8");
datastring+="&"+URLEncoder.encode("oauth_nonce", "UTF-8")+"="+URLEncoder.encode(System.currentTimeMillis()+"","UTF-8");
datastring+="&"+URLEncoder.encode("oauth_timestamp", "UTF-8")+"="+URLEncoder.encode(System.currentTimeMillis()/1000+"","UTF-8");
datastring+="&"+URLEncoder.encode("oauth_consumer_key","UTF-8")+"="+URLEncoder.encode("iriteshmehandiratta.appspot.com","UTF-8");
datastring+="&"+URLEncoder.encode("oauth_signature_method","UTF-8")+"="+URLEncoder.encode("RSA-SHA1", "UTF-8");
datastring+="&"+URLEncoder.encode("oauth_signature", "UTF-8")+"="+URLEncoder.encode(myrsakey, "UTF-8");
datastring+="&"+URLEncoder.encode("oauth_callback","UTF-8")+"="+URLEncoder.encode("https://www.iriteshmehandiratta.appspot.com/authsub","UTF-8");
datastring+="&"+URLEncoder.encode("scope","UTF-8")+"="+URLEncoder.encode("http://www.google.com/calendar/feeds","UTF-8");
我对查询字符串的参数进行了编码,现在我必须按字典顺序对datastring进行排序,以便向URL发送post请求
任何人都可以帮助我们如何在java中按字典顺序对这个字符串进行排序。使用java。这将允许您使用OAuth参数作为键,然后将值作为指定的值
我建议您首先将所有参数添加到树状图,然后迭代以获取集
,以构建URL查询字符串
TreeMap
的规范规定:
地图将根据其键的自然顺序进行排序,或按
在地图创建时提供的比较器
,具体取决于
使用构造函数
对字符串排序是什么意思?你有很多字符串,不想按顺序排序吗?没有,在这个字符串中有很多(key=value)对,我必须按字典顺序对这些键值对进行排序。那么,如何对这个字符串进行排序,使这些键值对按字典顺序排列呢?这应该是你问题的一部分。为什么不按照您想要的顺序对字符串连接进行排序呢。你所有的键都是常量,所以顺序总是一样的。我想说清楚,你为什么不先从oauth\u callback
开始,然后从oauth\u consumer\u key
开始,依此类推。这将保证词典的顺序,而不必事后排序。对不起,实际上我混淆了术语词典!!