小编sam*_*med的帖子

重试HttpClient不成功的请求

我正在构建一个给出HttpContent对象的函数,它将发出请求并在失败时重试.但是我得到异常,说HttpContent对象在发出请求后被处理掉.无论如何都要复制或复制HttpContent对象,以便我可以发出多个请求.

 public HttpResponseMessage ExecuteWithRetry(string url, HttpContent content)
 {
  HttpResponseMessage result = null;
  bool success = false;
  do
  {
      using (var client = new HttpClient())
      {
          result = client.PostAsync(url, content).Result;
          success = result.IsSuccessStatusCode;
      }
  }
  while (!success);

 return result;
} 

// Works with no exception if first request is successful
ExecuteWithRetry("http://www.requestb.in/xfxcva" /*valid url*/, new StringContent("Hello World"));
// Throws if request has to be retried ...
ExecuteWithRetry("http://www.requestb.in/badurl" /*invalid url*/, new StringContent("Hello World"));
Run Code Online (Sandbox Code Playgroud)

(显然我不会无限期地尝试,但上面的代码基本上就是我想要的).

它产生了这个例外

System.AggregateException: One or more errors occurred. ---> System.ObjectDisposedException: …
Run Code Online (Sandbox Code Playgroud)

c# httpcontent dotnet-httpclient

40
推荐指数
6
解决办法
6万
查看次数

即使使用__init__.py,相对路径也不起作用

我知道堆栈溢出有很多类似的问题.但是,共同的答案对我来说似乎并不适用.

我有这样的文件结构

  proj/
       lib/
          __init__.py
          aa.py
          bb.py
          test/
               __init__.py
               aa_test.py
Run Code Online (Sandbox Code Playgroud)

我想如果我在test.py中包含代码

import lib.aa
Run Code Online (Sandbox Code Playgroud)

要么

from lib import aa
Run Code Online (Sandbox Code Playgroud)

我将能够引用lib/目录中的模块.但那没用.

所以我尝试添加到路径,并正确添加它:

os.environ["PATH"] += ":%s" % os.path.abspath(os.path.join("..",""))
print os.environ["PATH"]
Run Code Online (Sandbox Code Playgroud)

但即使是现在,当我尝试上面的导入语句时......我不断收到错误

ImportError: No module named aa
Run Code Online (Sandbox Code Playgroud)

要么

ImportError: Importing from non-package <Something...>
Run Code Online (Sandbox Code Playgroud)

有什么明显的东西我不见了吗?

有没有办法检查我__init__.py是否正确配置了我的文件,或者查看我的包层次结构?

python import package python-import importerror

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

无法附加到剪贴板

每当我在我的python解释器中尝试以下操作时.即使关闭解释器,我也可以将单词hello复制到命令行

from Tkinter import Tk
r = Tk()
r.clipboard_append(" hello ")
Run Code Online (Sandbox Code Playgroud)

但是,如果我把它放在一个名为test.py的文件中,然后尝试

python test.py
Run Code Online (Sandbox Code Playgroud)

这不起作用,我无法将其附加到系统剪贴板

有没有人知道为什么不知道或者知道在脚本和解释器中运行它会有什么区别

python tk-toolkit tkinter

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

iOS信标区域禁用蓝牙时监控

我知道iOS允许基于iBeacon的后台区域监控,但我找不到指示用户是否必须启用蓝牙的文档?

如果从控制中心禁用蓝牙,它仍然有效吗?如果用户禁用蓝牙,我觉得这几乎没用.

ios ibeacon region-monitoring

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