小编Eri*_*ton的帖子

发送HEAD请求时,cURL挂起15秒

背景

我已经通过CLI使用了定时某些HTTP请求time和工具,如wgetcurl,如下所示:

/usr/bin/time -v wget --spider http://localhost/index
/usr/bin/time -v curl http://localhost/index 2>&1 > /dev/null

我注意到的是,在使用时curl,我得到的响应时间与wget第一次请求时的响应时间相似,后续请求的响应次数要少得多,就好像响应curl是从缓存中提供的而wget不是.

在调查之后,我发现在指定时--spider,wget发出一个HEAD附加的请求,这可以解释为什么缓存被绕过wget:

请求

HEAD /index HTTP/1.0
User-Agent: Wget/1.12 (linux-gnu)
Accept: */*
Host: localhost
Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)

响应

HTTP/1.1 200 OK
Date: Mon, 28 Nov 2011 14:45:59 GMT
Server: Apache/2.2.14 (Ubuntu)
Content-Location: index.php
Vary: negotiate,Accept-Encoding
TCN: choice
X-Powered-By: PHP/5.3.2-1ubuntu4.10
Set-Cookie: SESS421aa90e079fa326b6494f812ad13e79=16oqmug3loekjlb1tlvmsrtcr2; expires=Wed, 21-Dec-2011 18:19:19 GMT; path=/ …
Run Code Online (Sandbox Code Playgroud)

curl http wget head http-headers

12
推荐指数
1
解决办法
6982
查看次数

TypeError:没有字符串参数的编码或错误

我正在尝试将数据字节列表写入CSV文件.由于它是一个字节字符串列表,我使用下面的代码:

with open(r"E:\Avinash\Python\extracting-drug-data\out.csv", "wb") as w:
    writer = csv.writer(w)
    writer.writerows(bytes(datas, 'UTF-8'))
Run Code Online (Sandbox Code Playgroud)

但它会导致以下错误:

TypeError:没有字符串参数的编码或错误

datas 是字节字符串列表.

print(datas)
Run Code Online (Sandbox Code Playgroud)

产量

[b'DB08873', b' MOLSDFPDBSMILESInChIView Structure \xc3\x97Structure for DB08873 (Boceprevir) Close', b'394730-60-0', b'LHHCSNFAOIFYRV-DOVBMPENSA-N', b'Organic acids and derivatives  ', b'Food increases exposure of boceprevir by up to 65% relative to fasting state. However, type of food and time of meal does not affect bioavailability of boceprevir and thus can be taken without regards to food.  \r\nTmax = 2 hours;\r\nTime to steady state, three times a day …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

在shell脚本中获取IP地址的有效方法

上下文: 在*nix系统上,可以通过以下方式获取shell脚本中机器的IP地址:

ifconfig | grep 'inet' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

或者也是这样:

ifconfig | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's/addr://'
Run Code Online (Sandbox Code Playgroud)

问题: 是否有更简单,仍然可移植的方式来获取在shell脚本中使用的IP地址?

(我向*BSD和Solaris用户道歉,因为上面的命令可能无效 ;我无法测试)

shell scripting command-line

11
推荐指数
2
解决办法
3万
查看次数

我可以更新亚马逊旧版本的pip和setuptools吗?

我可以更新或删除AWS Elastic Beanstalk提供的pip和setuptools吗?

(运行我的应用程序,在2.7的虚拟环境提供了我的AWS弹性魔豆的Python环境PIP和setuptools的的版本ami-d14608e1;在/opt/python/run/venv/lib/python2.7/site-packages)是很老:通过报告

pip list --outdated
Run Code Online (Sandbox Code Playgroud)

他们是

setuptools (Current: 2.2 Latest: 12.0.5)
pip (Current: 1.5.4 Latest: 6.0.7)
Run Code Online (Sandbox Code Playgroud)

我可以更新这些(例如,将它们列在我的中requirements.txt)或者是EB的Python和部署过程所期望或需要的这些特定版本吗?

python pip setuptools amazon-web-services amazon-elastic-beanstalk

11
推荐指数
1
解决办法
2339
查看次数

如何处理Gnupg错误:gpg:没有默认密钥:没有密钥gpg:[stdin]:clearsign失败:没有密钥?

我收到一个错误:

gpg: no default secret key: No secret key
gpg: [stdin]: clearsign failed: No secret key
Run Code Online (Sandbox Code Playgroud)

我的密钥可供GPG使用.

gnupg

8
推荐指数
4
解决办法
8294
查看次数

如何在Ruby中构建可移植的绝对路径?

假设一个脚本需要访问一个目录,比如/some/where/abc在"任意"操作系统上.在Ruby中有几种选择来构建路径:

  • File.join('', 'some', 'where', 'abc')
  • File.absolute_path("some#{File::SEPARATOR}where#{File::SEPARATOR}abc", File::SEPARATOR)
  • Pathname 在标准API中

我相信第一个解决方案足够清楚,但却是惯用的.根据我的经验,一些代码审查要求评论来解释它的作用......

问题

有没有更好的方法来构建绝对路径是Ruby,哪里更好意味着"做好工作并为自己说话"?

ruby

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

JavaScript中的XMLHttpRequest是什么类型的?

我想知道XMLHttpRequestJavaScript中标准类型的对象是什么.根据引擎的不同,我发现了不同的结果.

在Firefox和Chrome中:

typeof XMLHttpRequest //=> "function"
Run Code Online (Sandbox Code Playgroud)

在Safari中:

typeof XMLHttpRequest //=> "object"
Run Code Online (Sandbox Code Playgroud)

W3C规范使用interface关键字来定义XMLHttpRequest,这在实践中没有使用:

[Constructor(optional XMLHttpRequestOptions options)]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

MDN定义指出:

XMLHttpRequest是一个JavaScript对象......

但Firefox回归"function",所以这个词至少含糊不清.该定义还指出:

它现在正在W3C中进行标准化.

我在这里和那里看了一下,但没有明确的答案 ™.有没有?

除此之外,还有一些额外的背景


问题的背景

我刚修复了这段代码中的错误:

if (typeof XMLHttpRequest === "function") {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,只在Safari 7中发生了这个错误(没有对其他版本进行测试).该代码在Firefox和Chrome中运行良好.修复是:

if (typeof XMLHttpRequest !== "undefined") {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

问题来自于假设typeof XMLHttpRequest各地都一样......

javascript safari xmlhttprequest

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

Android自定义对话框

我正在尝试按照Android开发人员网站上教程制作自定义对话框,但每次尝试显示对话框时都会崩溃.这是我的代码:

Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);

dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");
dialog.show();
Run Code Online (Sandbox Code Playgroud)

这是我的布局XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
        android:id="@+id/btnConfirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add text"
        android:layout_below="@+id/txtNewText"
        android:layout_alignParentLeft="true">
    </Button>
    <EditText
        android:id="@+id/txtNewText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true">
    </EditText>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android dialog

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

即使文件存在,start-stop-daemon也不会写入nginx.pid文件

这似乎是一个重复的问题,但事实并非如此.我在其上发现了一些start-stop-daemon没有创建PID文件的文章.但就我而言,我已经创建了PID文件.我在服务器上执行此命令以启动Nginx:

/mnt/nginx/logs/nginx.pid
start-stop-daemon --start --quiet --pidfile /mnt/nginx/logs/nginx.pid --exec /usr/local/sbin/nginx
Run Code Online (Sandbox Code Playgroud)

PID文件已存在但仍未start-stop-daemon写入文件.我甚至尝试使用该--make-pidfile选项,但随后start-stop-daemon写入错误的pid到文件.

nginx start-stop-daemon

6
推荐指数
1
解决办法
4586
查看次数

在AngularJS中注入配置

我有一个配置,我希望能够注入Angular服务,指令等.这样做的最佳方法是什么?

我正在玩制作配置模块的想法:

'use strict';
angular.module('config', [])
Run Code Online (Sandbox Code Playgroud)

但是我不确定如何构造将被注入的实际配置对象的对象文字:

angular.module('myModule', ['ngResource', 'config'])
  .factory('myservice', function ($resource) {
        return $resource(config.myservice,{}, {
          // whatever
        })
  });
Run Code Online (Sandbox Code Playgroud)

将config作为服务公开并注入它是否可以?

angularjs

6
推荐指数
2
解决办法
8163
查看次数