我无法上传到AppEngine,因为appcfg它告诉我:
此应用程序不存在(app_id = u'xxx').
我只是AppEngine的开发人员,所以当我刚刚测试时,我创建了一个新的AppEngine,我是所有者,但我仍然在新创建的AppEngine上获得相同的消息.
我在解决如何使用CursorLoader方面遇到了麻烦.
我试图解决的问题是如何在ListActivity中显示我的SQLite数据库中的数据.列表行使用自定义布局,因此需要来自3个字段的数据(全部在同一个表中).
除了一些Stack Overflow问题,我还阅读了这篇博文,并决定我需要为我的数据库创建一个内容提供程序.
在我去Android安卓帮助之前从未使用过内容提供商.
第1点指出:
如果使用完全在您自己的应用程序中,则不需要提供程序来使用SQLite数据库.
所以现在我卡住了,我似乎没有使用没有ContentProvider的CursorLoader,如果只在我的应用程序中使用,我建议不要创建ContentProvider.
我目前正在考虑可能是帮助已经过时或者在编写时没有想到光标加载器?
那么我还需要继续创建一个ContentProvider,还是有其他方法可以做到这一点?任何建议都会有所帮助!
在我的 Google Apps Script App 中,我看到以下错误:
脚本已完成但返回的值不是受支持的返回类型
如何找出我返回的值的类型?我试过:
typeof(obj)
Run Code Online (Sandbox Code Playgroud)
但我得到的只是它是一个对象。
此错误仅在缓存为空且数据是从电子表格加载时发生。例如,用户点击页面,得到错误,刷新现在加载页面,因为缓存在第一次点击时被填充。现在用户可以继续使用该页面,直到缓存失效,然后下一次命中将再次导致此错误。
在我阅读并遵循此文档后,今天开始发生此错误。以前我的脚本在模板中加载数据,我现在重构为异步加载使用:
google.script.run
Run Code Online (Sandbox Code Playgroud)
我查看了我的页面中发生的事情,以了解为什么从缓存读取时它会起作用,我唯一能看到的不同之处是缓存中的数据是从 JSON 字符串中解析出来的。当缓存为空时,我必须对对象进行字符串化以保存到缓存中,因此我不是返回我的原始对象,而是解析我刚刚创建的字符串并返回它,现在没有错误。
我不确定错误来自哪里,是 Apps Script 还是 Caja?
解析 JSON 字符串以返回也不是理想的解决方案,这个字符串化/解析对删除错误的原始对象做了什么?
当我使用内置调试器检查对象(在字符串化/解析过程之前和之后)时,值和类型似乎都与我所能检查的最佳状态相同。
这是 Apps 脚本中的错误吗?难道我做错了什么?消除此错误的最佳解决方案是什么?
我需要找到一种使用Chrome应用程序唯一识别每个设备(ChromeBook/ChromeBox)的方法,我已经浏览了Chrome应用程序文档以及使用pepper api创建本机插件的文档.
但是我无法看到识别设备的能力,只是一个用户(这对我来说是不够的).
可以这样做吗?我怎么能得到这个?
这是我的拳头stackoverflow帖子所以请对我温柔!我确信我正在尝试做的事情是可能的,这是我做过的事情(或者没做过的事情?)导致问题......我只是不确定那是什么东西.
我正在尝试做的事:
在我的应用程序同步并处理下载的数据时显示ProgressDialog.
问题:
ProgressDialog显示但不旋转(这使它看起来像已冻结),同步和处理发生,ProgressDialog关闭,应用程序继续正常.
我目前如何做到这一点:
创建ProgressDialog - 在我的活动中
执行同步 - 在我的服务
处理数据 - 在我的服务
Dismis中ProgressDialog - 在我的活动中
我尝试过的事情:
使用线程(下面的代码)使用AsynTask(如果需要可以提供代码)使用Handler(如果需要可以提供代码)
在花了很多时间寻找我的问题的答案后,似乎其他人有相同或类似的问题,并设法使用上述一个想法解决它.但是,我无法实现任何这些想法来解决我的特定问题.这让我确信这是我做错的事情......我只是不确定是什么.
我编写的原始代码并用作我所有尝试修复的基础:
首先
public class myActivity extends ListActivity {
private ProgressDialog dialog;
private boolean mIsBound;
private myService mBoundService;
private ServiceConnection mConnection;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*if we need to login start login activity for result*/
...
}
...
/*other methods*/
...
}
Run Code Online (Sandbox Code Playgroud)
然后
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
switch …Run Code Online (Sandbox Code Playgroud) 我正在构建一个代理服务器,在收到HTTP CONNECT请求后,我建立了与目标服务器的连接,如果成功返回
HTTP/1.1 200 Connection established
<<empty line>>
Run Code Online (Sandbox Code Playgroud)
在Firefox中,这导致打开隧道并在浏览器中交换,加载并最终传送/呈现数据
在谷歌浏览器中,我立即看到:
ERR_TUNNEL_CONNECTION_FAILED
Run Code Online (Sandbox Code Playgroud)
由于服务器似乎适用于Firefox而不适用于Chrome,因此我只能假设Chrome需要不同的响应.有谁知道我在做错了什么?
编辑:
我发现这里的铬问题描述了相同的症状 - 用户获取ERR_TUNNEL_CONNECTION_FAILED.我启用了--log-net-log命令行参数,并且可以在日志中看到在收到我的200连接建立的代理响应后直接发生ERR_TUNNEL_CONNECTION_FAILED错误.
在请求和响应之间的较高位置,我看到-109错误,对应于ADDRESS_UNREACHABLE.
我在下面提到了我认为net-log的相关部分是:
{"params":{"headers":["Host: mail.google.com","Proxy-Connection: keep-alive","User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"],"line":"CONNECT mail.google.com:443 HTTP/1.1\r\n"},"phase":0,"source":{"id":822,"type":5},"time":"331488980","type":125},
{"params":{"headers":["Host: mail.google.com","Proxy-Connection: keep-alive","User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"],"line":"CONNECT mail.google.com:443 HTTP/1.1\r\n"},"phase":0,"source":{"id":822,"type":5},"time":"331488980","type":129},
{"params":{"byte_count":227},"phase":0,"source":{"id":822,"type":5},"time":"331488980","type":61},
{"phase":2,"source":{"id":822,"type":5},"time":"331488981","type":124},
{"phase":1,"source":{"id":822,"type":5},"time":"331488981","type":126},
{"phase":1,"source":{"id":822,"type":5},"time":"331488981","type":207},
{"params":{"address_family":0,"allow_cached_response":true,"host":"mail.google.com:0","is_speculative":false,"source_dependency":{"id":0,"type":0}},"phase":1,"source":{"id":823,"type":8},"time":"331489008","type":4},
{"params":{"source_dependency":{"id":823,"type":8}},"phase":1,"source":{"id":824,"type":21},"time":"331489008","type":299},
{"params":{"source_dependency":{"id":824,"type":21}},"phase":1,"source":{"id":825,"type":14},"time":"331489008","type":34},
{"params":{"address":"[2001:4860:4860::8888]:53"},"phase":1,"source":{"id":825,"type":14},"time":"331489008","type":70},
{"params":{"net_error":-109},"phase":2,"source":{"id":825,"type":14},"time":"331489008","type":70},
{"phase":2,"source":{"id":825,"type":14},"time":"331489008","type":34},
{"phase":2,"source":{"id":824,"type":21},"time":"331489008","type":299},
{"phase":0,"source":{"id":823,"type":8},"time":"331489008","type":6},
{"phase":2,"source":{"id":823,"type":8},"time":"331489008","type":4},
{"params":{"byte_count":74},"phase":0,"source":{"id":822,"type":5},"time":"331489052","type":63},
{"phase":2,"source":{"id":822,"type":5},"time":"331489052","type":207},
{"params":{"headers":["HTTP/1.1 200 Connection established"]},"phase":0,"source":{"id":822,"type":5},"time":"331489052","type":127},
{"params":{"net_error":-111},"phase":2,"source":{"id":822,"type":5},"time":"331489052","type":126},
Run Code Online (Sandbox Code Playgroud)
如果您需要查看更多日志,我已在此处发布了整个日志
我正在开发一个Chrome Packaged App,它是一个客户端应用程序,通过TCP将数据发送到外部tcp服务器.
如何确保我连接的套接字使用TLS?在客户端连接的什么时候我需要添加一个参数来启用它?证书的存储方式/位置在哪里?我是否需要手动处理此操作,还是Chrome会为我执行此操作?
这是我的代码示例:
chrome.app.runtime.onLaunched.addListener(function(launchData){
chrome.sockets.tcp.create({persistent: false, name: 'my_socket'}, function(createInfo) {
var socketId = createInfo.socketId;
chrome.storage.local.set({socketId: socketId}, function(){
chrome.sockets.tcp.connect(socketId, IP_ADDRESS, PORT, function(result){
if (result < 0){
// There was an error.
} else {
chrome.sockets.tcp.setKeepAlive(socketId, true, 60, function(result){
if (result < 0){
// There was an error.
} else {
chrome.sockets.tcp.send(socketId, myData, function(sendInfo){
if (!sendInfo || sendInfo.resultCode < 0){
// There was an error.
} else {
// Data Sent, await response in chrome.sockets.tcp.onReceive
}
});
}
});
} …Run Code Online (Sandbox Code Playgroud) 我编写了一个 SOCKS 代理,如果链接关闭,它可以同时处理 HTTP 和 HTTPS 流量。
如果链接打开并且转发主机和端口属于过滤 HTTP 代理,则只有 HTTP 流量可以流动。HTTPS 流量不流动并报告 SSL 错误。
请注意,当请求直接来自浏览器而不是来自 SOCKS 服务器时,HTTP 代理会处理 HTTPS 流量。
例如,如果我向https://www.google.com发出请求,则会发生以下情况:
1) 客户端发送 SOCKS 5 问候,让我们知道哪些身份验证方法是可以接受的。
2) 服务器以 NO_AUTH 响应
3) 客户端发送连接请求(包括预期的目标主机和端口)。
4) 服务器创建一个套接字并将其连接到 HTTP 代理服务器,并以 GRANTED 响应客户端
5) SOCKS 服务器然后收到以下请求(隐形/控制字符已全部替换为其字符代码,因此您可以看到发生了什么):
\u0016\u0003\u0001\u0000Ñ\u0001\u0000\u0000Í\u0003\u0003áp¥@Ia¹\u0001„Ä\u0006 É;š‰‰4\u001dýà•J>Ü6¢Þ\fö\u001c%\u0000\u0000(À+À/\u0000žÌ\u0014Ì\u0013À\nÀ\tÀ\u0013À\u0014À\u0007À\u0011\u00003\u00002\u00009\u0000œ\u0000/\u00005\u0000\n\u0000\u0005\u0000\u0004\u0001\u0000\u0000|\u0000\u0000\u0000\u0013\u0000\u0011\u0000\u0000\u000ewww.google.comÿ\u0001\u0000\u0001\u0000\u0000\n\u0000\b\u0000\u0006\u0000\u0017\u0000\u0018\u0000\u0019\u0000\u000b\u0000\u0002\u0001\u0000\u0000#\u0000\u00003t\u0000\u0000\u0000\u0010\u0000\u001b\u0000\u0019\u0006spdy/3\bspdy/3.1\bhttp/1.1uP\u0000\u0000\u0000\u0005\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0000\u0012\u0000\u0000\u0000\r\u0000\u0012\u0000\u0010\u0004\u0001\u0005\u0001\u0002\u0001\u0004\u0003\u0005\u0003\u0002\u0003\u0004\u0002\u0002\u0002
Run Code Online (Sandbox Code Playgroud)
如您所见,它完全不可读,但我们已经从初始 SOCKS 连接消息(第 3 步)中知道用户打算去哪里,因此我们可以创建并发出以下连接请求:
CONNECT www.google.com:443 HTTP/1.1\r\nUser-Agent: MySocksServer\r\nProxy-Connection: keep-alive\r\nHost: www.google.com\r\n\r\n
Run Code Online (Sandbox Code Playgroud)
6) 这个新构造的 CONNECT 被发送到我们链接的 HTTP 代理,这个代理检查它的过滤规则并响应:
HTTP/1.1 200 Connection Established\r\nVia: 1.1 HTTPserverName\r\nX-WebMarshal-RequestID: AN_ID_STRING\r\n\r\n
Run Code Online (Sandbox Code Playgroud)
7) 这在我们的 SOCKS 服务器中接收并转发(未修改)到客户端。在我的调试中,我在发送请求之前直接监视套接字,并且可以看到客户端套接字已连接。
8) 引发的下一个事件是错误,错误为 SOCKET_NOT_CONNECTED,对套接字运行另一项检查确认客户端套接字确实不再连接。
为什么我的 Socket 会在第 …