我这可能是一个奇怪的问题,但我想我会继续问问.说,我通过特殊客户端使用IMAP SMTP 发送电子邮件.此客户端在发送电子邮件之前会向电子邮件中添加一些自定义标头.收件人收到此电子邮件并直接回复我(也可能是CC的一些人).
我的问题是:鉴于上面的例子,这些X-header是否会在线程中的所有新消息中持续存在?
我能想到的一件事是客户端会知道它发送的原始电子邮件.对此电子邮件的所有后续回复都将有一个"回复"标题,其值等于上一封电子邮件的"Message-Id".在看到客户端发送的原始邮件之前,我不明白为什么我无法抓取这些回复帖子,从而导出原始的自定义标头.
也许我在想这个.有什么建议?:)
我正试图从PhantomJS转向Headless Chrome,并遇到了一些障碍.对于本地测试,我使用Docker Compose来启动和运行所有相关服务.要配置谷歌浏览器,我使用的图像将它和ChromeDriver捆绑在一起,同时在端口上提供服务4444.然后我在这个简化的docker-compose.yml文件中将它链接到我的app容器,如下所示:
web:
image: web/chrome-headless
command: [js-specs]
stdin_open: true
tty: true
environment:
- RACK_ENV=test
- RAILS_ENV=test
links:
- "chromedriver:chromedriver"
chromedriver:
image: robcherry/docker-chromedriver:latest
ports:
- "4444"
cap_add:
- SYS_ADMIN
environment:
CHROMEDRIVER_WHITELISTED_IPS: ""
Run Code Online (Sandbox Code Playgroud)
然后,我有一个spec/spec_helper.rb文件来引导测试环境和相关的工具.我定义了:headless_chrome驱动程序并将其指向ChromeDriver的本地绑定; http://chromedriver:4444.我很确定以下内容是正确的:
Capybara.javascript_driver = :headless_chrome
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: %w[headless disable-gpu window-size=1440,900] },
)
Capybara::Selenium::Driver.new app,
browser: :chrome,
url: "http://chromedriver:4444/",
desired_capabilities: capabilities
end
Run Code Online (Sandbox Code Playgroud)
我们也使用VCR,但我已将其配置为忽略与ChromeDriver使用的端口的任何连接:
VCR.configure …Run Code Online (Sandbox Code Playgroud) ruby-on-rails capybara docker-compose google-chrome-headless
自从我启用XDebug以来,我在命令行中运行基于PHP的实用程序时遇到了一些问题.它通过浏览器执行脚本时运行正常,但是一旦我尝试在命令行上执行脚本,它就会抛出以下错误:
h:\www\test>@php test.php
PHP Warning: PHP Startup: Unable to load dynamic library 'E:\development\xampplite\php\ext\php_curl.dll' - The specified module could not be found in Unknown on line 0
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
h:\www\test>
Run Code Online (Sandbox Code Playgroud)
在此之后脚本运行得很好,但这似乎是我无法绕过的东西.它可能是我的php.ini配置中的路径问题吗?我不确定是否会出现这种情况,无论我在何处访问@php环境变量,它都会抛出同样的错误.
此外,我的php.ini中的所有路径都是绝对的.不确定这里发生了什么.
我知道这是一个奇怪的问题,但请耐心等待.我们为我们的iPhone应用程序开发了一个使用Python的RESTful平台.webapp版本是使用Django构建的,它也使用了这个API.我们认为使用Django的内置控制面板功能来帮助管理数据是个好主意.
这本身不是问题.问题是每个人都认为管理中心本身就是一个位于RESTful平台之上的客户端.
所以,我的问题是,有没有办法操纵Django的模型层直接访问我们的API,而不是直接与数据库通信?模型层将充当客户端向管理中心传递请求和响应.
我确信这是可能的,但我不确定我会从哪里开始.有什么输入?
好吧,这就是我想要做的.我正在尝试在bash中编写一个快速构建脚本,该脚本将从远程服务器上的GitHub检出私有存储库.要做到这一点,尽可能"手动",我想在远程服务器上生成本地RSA密钥集,并将公钥添加为该特定存储库的部署密钥.我知道如何使用GitHub的API来做到这一点,但是我在使用Bash构建JSON有效负载时遇到了麻烦.
到目前为止,我有以下特定流程:
#!/bin/bash
ssh-keygen -t rsa -N '' -f ~/.ssh/keyname -q
public_key=`cat ~/.ssh/keyname.pub`
curl -u 'username:password' -d '{"title":"Test Deploy Key", "key":"'$public_key'"}' -i https://api.github.com/repos/username/repository/keys
Run Code Online (Sandbox Code Playgroud)
它只是没有正确构建有效载荷.在Bash中使用字符串操作时我不是专家,所以我可以认真地使用一些帮助.谢谢!
好吧,我会尽量保持这个简短,甜蜜和重点.
我们通过将MASSIVE CSV文件上传到基于PHP的CMS,对我们的系统进行大量的GeoIP更新.这件事通常有超过100k的IP地址信息记录.现在,简单地导入这些数据根本不是问题,但我们必须对当前的区域IP地址映射运行检查.
这意味着我们必须验证数据,比较和拆分重叠的IP地址等.并且必须对每条记录进行这些检查.
不仅如此,我还创建了一个字段映射解决方案,允许其他供应商以不同的格式实现其GeoIP更新.这是通过将规则应用于CSV更新中的IP记录来完成的.
例如,规则可能如下所示:
如果'countryName'=='澳大利亚'然后发送到'澳大利亚IP池'
可能存在多个必须运行的规则,并且每个IP记录必须全部应用它们.例如,根据10条规则检查的100k记录将是100万次迭代; 不好玩.
我们发现100条记录的2条规则最多需要10分钟来处理.我完全清楚这里的瓶颈是成功导入必须发生的剪切迭代量; 只是没有充分意识到我们可能需要加快一些其他选择.
有人建议将文件拆分为服务器端的块.我不认为这是一个可行的解决方案,因为它为已经很复杂的系统增加了另一层复杂性.必须打开,解析和拆分该文件.然后脚本也必须遍历块.
所以,问题是,考虑到我刚刚写的内容,最好的方法是什么才能加快这个过程?不幸的是,升级服务器的硬件JUST对于这个工具不是一个选择,但它们是非常高端的盒子.
不像我想的那么短,但是.HALPS?:(
我很难绕过这个问题,所以任何帮助都将不胜感激.
我想要做的就是在我的项目上测试一个简单的基于Ajax的注册表单.如果表单提交成功,您将被重定向到欢迎页面.如果不是,则会获得与每个违规字段相关的相应验证错误.
由于一些奇怪的原因,Capybara没有遵循重定向.正在进行Ajax调用,我看到在数据库中注册了一个新帐户,但是onSuccess根本没有调用回调,或者忽略了重定向.
这是我正在尝试使用的(为了简洁起见,我缩写了代码):
特征:
Feature: Registration
In order to obtain a new account
As a prospective customer
I must submit a valid registration form.
@javascript
Scenario: A valid registration attempt
Given an account registration form
When I complete the form with valid values
Then I should be redirected to the welcome screen
Run Code Online (Sandbox Code Playgroud)
测试:
Given(/^an account registration form$/) do
visit("/signup")
assert current_path == "/signup"
end
When(/^I complete the form with valid values$/) do
within("#signupForm") do
fill_in("email", :with => …Run Code Online (Sandbox Code Playgroud) 我试图在rspec Ruby on Rails中使用无头模式的chrome和capybara/selenium,并在尝试单击确认对话框时出现错误
Capybara.register_driver(:headless_chrome) do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: %w[headless disable-gpu test-type window-size=1920x1080] }
)
driver = Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: capabilities
)
driver
end
Capybara.server = :puma
Capybara.javascript_driver = :headless_chrome
scenario 'delete movie' do
login_as user
visit edit_public_movie_path(movie)
expect(page).to have_selector('span[ng-click="ctrl.deleteMovie()"]')
find('span[ng-click="ctrl.deleteMovie()"]').click
page.driver.browser.switch_to.alert.accept
wait_for_ajax(wait_after: 1)
expect(page).to have_content('Click here to upload movie (Max: 500 MB)')
end
Run Code Online (Sandbox Code Playgroud)
并得到了这个错误
Event movie success delete movie
Failure/Error: page.driver.browser.switch_to.alert.accept
Selenium::WebDriver::Error::NoSuchAlertError:
no alert open
(Session info: headless chrome=59.0.3071.115)
(Driver info: chromedriver=2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac …Run Code Online (Sandbox Code Playgroud) 大家好.我目前正在尝试在OSX(Snow Leopard 10.6.7)上为我的ANT(版本1.8.2)安装设置FTP支持,我有点碰壁.我已经阅读了Apache.org上的文档,内容涉及新任务的安装以及遍布整个网络的几篇文章,我似乎无法让这件事工作.
我读过的所有文章都提到了两个特定的JAR文件,这些文件没有与ANT的默认安装一起打包:
显然,Jakarta ORO不再是一个活跃的Apache项目,但我能够找到一个存档版本.
然后,显然,我所要做的就是将预编译的JAR文件放入相对于ANTs基本安装目录的lib文件夹中.我运行了以下命令:
ant -diagnostics | grep ftp.*Available
Run Code Online (Sandbox Code Playgroud)
我收到以下回复:
ftp : Not Available (the implementation class is not present)
Run Code Online (Sandbox Code Playgroud)
没有快乐.
不知道还能做什么.从我读过的内容来看,我正在执行适当的步骤来使这件事工作.
所以,我做了几个小时的尽职调查,我别无选择,只能请大家帮忙.以下是-diagnostics开关输出的直接链接.希望有人可以解释我在这里做错了什么.
http://www.thedrunkenepic.com/uploads/antDiagnostics.txt
一如既往,我很感激能得到任何帮助!
免责声明:过去几个月我一直在使用OSX,虽然我觉得使用终端很舒服,但我还是比较新的.所以,请...温柔.:)
我在使用HTTP DELETE指令访问脚本时从PHP访问原始请求信息时遇到问题.我正在使用一个使用Ajax访问脚本的JS前端.这个脚本实际上是我正在开发的RESTful API的一部分.
此示例中的端点是:
此端点用于生成可用于后续API请求的身份验证令牌.在此URL上使用GET方法以及HTTP基本身份验证的修改版本将为客户端提供访问令牌.然后,必须将此令牌包含在与服务的所有其他交互中,直到它过期.
生成令牌后,会以客户端发送服务的"Accept"标头指定的格式将其传递回客户端; 在这种情况下'application/json'.成功后,它会响应HTTP 200 Ok状态代码.失败时,它会使用HTTP 401 Authorization Required代码抛出异常.
现在,当您要删除会话或"注销"时,您使用HTTP DELETE指令访问相同的URL.要验证对此端点的访问权限,客户端必须通过提供要终止的令牌来证明它们之前已经过身份验证.
如果他们"登录",则终止令牌和会话,并且服务应该使用HTTP 204 No Content状态代码进行响应,否则,他们再次受到401异常的欢迎.
现在,我遇到的问题是删除会话.使用带有Ajax的DELETE指令,一旦请求到达服务,我似乎无法访问我设置的任何参数.在这种情况下,我正在寻找名为'token'的参数.
我使用Firebug查看原始请求标头,我注意到'Content-Length'标头随着发送标记的大小而变化.这告诉我这个数据确实被发送到服务器.
问题是,使用PHP,我如何获取参数信息?它不是POST或GET请求,因此我无法像在PHP中那样访问它.参数在请求的内容部分内.
我已经尝试查找$ _SERVER,但这显示我有限的标头数量.我尝试了'apache_request_headers()',这给了我更详细的信息,但仍然只针对标题.我甚至试过'file_get_contents('php:// stdin');' 我一无所获
如何访问原始HTTP请求的内容部分?
对于冗长的帖子感到抱歉,但我认为太多的信息比太少了.:)