Closed wzyddg closed 7 years ago
您好,请问问题是否已经解决?在我的环境下并无问题。(您的例句转中文还是转英文都是可以的) 我的运行ide是:
Eclipse IDE for Java Developers
Version: Neon.1a Release (4.6.1)
如果您的工程还有问题并亟待解决,可以将您的工程文件发送至99449107@qq.com,我尝试帮您解决。
没有解决 我的环境: Eclipse Java EE IDE for Web Developers. Version: Neon.1a Release (4.6.1)
java version "1.8.0_77"
其他java项目都可以正常跑。 我只在GoogleDispatch()里加了langMap.put("ru", "ru");在Main类main函数里的TransInit();之后调用 System.out.println(Dispatch.Instance("google").Trans("ru", "zh", "Внатуре, спасибо тебе, братан. Короче, приходил сюда один такой сталкер, ну... мы с ним ничего не делали, честно. Он спустился к нам на базу к трубам вниз, так тут откуда-то кровосос взялся, да напал на наших людей, уволок двоих туда в логово двоих, включая его. Братана моего покоцало, я его сюда вытащил, кровь никак не остановить. Если ищешь его, спускайся вниз, только будь осторожен, опасайся той твари."));
其他都没有改动过了,我在我的windows电脑和mac上都试过,相同异常。 改用百度的翻译就可以成功。
您好,在您的工程里面,GoogleDispatch.Trans方法中,应该会判断字符长度然后选择get或是post的方式发送参数,请将这个地方修改为不作判断,始终采用post的方式发送。即
@Override
public String Trans(String from, String targ, String query) throws Exception{
HttpParams params = null;
params = new HttpPostParams(); //统一采用post,若字符长度小于999用get也可以的
或者参考新push的源码
解决了,猜测是俄文字符串在进行URL编码前长度在999之下(例句为408),使程序选择了GET方式,而URL编码后的长度却很长超过了GET请求的最大长度(仅例句编码后为2031)。谢谢作者的帮助。
不客气。过年了也不休息休息,预祝新年快乐。
也祝你新年快乐。不过现在因为请求过于频繁触发了人机验证,谷歌接口暂时不让我调了。请问您知道多久才能恢复?以后以多低的频率调用才不会被封吗?
他怎么提示你的?老实说我还没遇到这个情况,所以也不太清楚。翻译我也只是偶尔用,用的并不频繁。
我在GoogleDispatch类的私有构造函数GoogleDispatch()里加了一句langMap.put("ru", "ru");来翻译俄语,效果喜人,但是在遇到长句的时候,抛出了异常如下: Exception in thread "main" net.sf.json.JSONException: A JSONArray text must start with '[' at character 1 of <!DOCTYPE html>
400. That’s an error.
Your client has issued a malformed or illegal request. That’s all we know. at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:499) at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1116) at net.sf.json.JSONArray._fromString(JSONArray.java:1197) at net.sf.json.JSONArray.fromObject(JSONArray.java:127) at net.sf.json.JSONArray.fromObject(JSONArray.java:105) at com.lsj.trans.GoogleDispatch.ParseString(GoogleDispatch.java:69) at com.lsj.trans.GoogleDispatch.Trans(GoogleDispatch.java:64) 我觉得是返回的网页 报错所以解析失败。 我用的例句:Внатуре, спасибо тебе, братан. Короче, приходил сюда один такой сталкер, ну... мы с ним ничего не делали, честно. Он спустился к нам на базу к трубам вниз, так тут откуда-то кровосос взялся, да напал на наших людей, уволок двоих туда в логово двоих, включая его. Братана моего покоцало, я его сюда вытащил, кровь никак не остановить. Если ищешь его, спускайся вниз, только будь осторожен, опасайся той твари.