在绘制路径时,我遇到了Android Canvas的一些问题.我的情况是我有一个相对布局工作,如地图视图(不使用谷歌API或类似的东西).我必须在该视图上绘制一条路径.
canvas.drawPath(polyPath, borderPaint);
Run Code Online (Sandbox Code Playgroud)
我还必须使用画布绘制其他类型的圆形,多边形.每次我们放大或缩小时,我们都会重新计算路径点以匹配缩放级别.当使用像Android 2.3.3这样的旧api时,根本没有问题.但是对于像android 4.x这样的新api,当我们放大时,有一些点位于可见视图之外(例如-300,-300).放大一段时间后,可见区域只显示我路径的一小部分.然后突然整条路径消失了.如果我们缩小,它会再次出现.就像画布停止渲染那些(其他对象仍然显示像图标)同样的东西去圆形,椭圆形或多边形.
所以我不确定帆布画的东西是否有任何改变?关于使用画布绘画,我有什么遗漏吗?
我们的应用程序需要向SOAP服务发送一些请求.我们使用wsimport命令为我们的客户端生成类.但有时当服务停止或某些网络问题时,我们的请求会挂起,直到超时,这太长了.我们想控制超时值,所以我们尝试了几种方法.
对于调用服务方法,在阅读其他帖子后,我们设置如下:
((BindingProvider) port).getRequestContext().put("sun.net.client.defaultReadTimeout", 3000);
((BindingProvider) port).getRequestContext().put("sun.net.client.defaultConnectTimeout", 10000);
Run Code Online (Sandbox Code Playgroud)
但在此之前,我们必须调用get port来读取wsdl文件.我们尝试创建这样的URL:
url = new URL(null, "http://theirsite/WS?WSDL", new URLStreamHandler() {
@Override
protected URLConnection openConnection(URL url) throws IOException {
logger.info("URLStreamHandler got call!");
URL clone_url = new URL(url.toString());
HttpURLConnection clone_connection
= (HttpURLConnection) clone_url.openConnection();
clone_connection.setConnectTimeout(5000);
clone_connection.setReadTimeout(3000);
return (clone_connection);
}
});
Run Code Online (Sandbox Code Playgroud)
然后我们在创建Service对象时使用此url作为参数.但我们的URLStreamHandler从未接到电话.
我们甚至尝试设置这样的系统属性:
System.setProperty("sun.net.client.defaultReadTimeout", "" + 3000);
System.setProperty("sun.net.client.defaultConnectTimeout", "" + 5000);
Run Code Online (Sandbox Code Playgroud)
但到目前为止,对我们来说没什
所以any1可以帮我解决这个问题吗?还是有更好的方法?需要提一下的是,我们不想从本地读取wsdl文件.
我们有一个需要连接到2个服务器的应用程序。这2个中的一个仅具有pulbic ip地址,而另一个仅具有专用ip地址。(现在不可能要求同时拥有公共或私有的)要连接到公共地址,我们需要通过我们的公司代理。但是我们需要绕过代理才能连接到私有代理。
Android模拟器也提供选项来为某些网站(如浏览器)设置旁路代理。
谢谢和最好的问候
我们正在维护一个当前在Java 8上运行的项目。现在,我们必须通过其api调用合作伙伴服务器,以将一些数据迁移到我们的数据库中。
当我们调用他们的服务器时,我们得到了一个例外:
原因:org.apache.http.ProtocolException:服务器无法使用有效的HTTP响应进行响应
在这种情况下,响应代码为-1。
所以我尝试使用curl从他们的服务器获取数据,我看到他们的响应状态行是:
HTTP / 2 200
虽然HttpURLConnection像这样检查:
if (statusLine.startsWith("HTTP/1.")) {
int codePos = statusLine.indexOf(' ');
if (codePos > 0) {
int phrasePos = statusLine.indexOf(' ', codePos+1);
if (phrasePos > 0 && phrasePos < statusLine.length()) {
responseMessage = statusLine.substring(phrasePos+1);
}
// deviation from RFC 2616 - don't reject status line
// if SP Reason-Phrase is not included.
if (phrasePos < 0)
phrasePos = statusLine.length();
try {
responseCode = Integer.parseInt
(statusLine.substring(codePos+1, phrasePos));
return responseCode;
} catch (NumberFormatException e) …Run Code Online (Sandbox Code Playgroud)