小编Lau*_*rel的帖子

Python urllib2,基本HTTP身份验证和tr.im.

我正在玩,尝试编写一些代码来使用tr.im API来缩短URL.

在阅读http://docs.python.org/library/urllib2.html后,我尝试了:

   TRIM_API_URL = 'http://api.tr.im/api'
   auth_handler = urllib2.HTTPBasicAuthHandler()
   auth_handler.add_password(realm='tr.im',
                             uri=TRIM_API_URL,
                             user=USERNAME,
                             passwd=PASSWORD)
   opener = urllib2.build_opener(auth_handler)
   urllib2.install_opener(opener)
   response = urllib2.urlopen('%s/trim_simple?url=%s'
                              % (TRIM_API_URL, url_to_trim))
   url = response.read().strip()
Run Code Online (Sandbox Code Playgroud)

response.code是200(我认为它应该是202).url有效,但基本的HTTP身份验证似乎没有用,因为缩短的URL不在我的URL列表中(在http://tr.im/?page=1).

在阅读http://www.voidspace.org.uk/python/articles/authentication.shtml#doing-it-properly后, 我也尝试过:

   TRIM_API_URL = 'api.tr.im/api'
   password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
   password_mgr.add_password(None, TRIM_API_URL, USERNAME, PASSWORD)
   auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
   opener = urllib2.build_opener(auth_handler)
   urllib2.install_opener(opener)
   response = urllib2.urlopen('http://%s/trim_simple?url=%s'
                              % (TRIM_API_URL, url_to_trim))
   url = response.read().strip()
Run Code Online (Sandbox Code Playgroud)

但我得到了相同的结果.(response.code为200且url有效,但未在我的帐户http://tr.im/中记录.)

如果我使用查询字符串参数而不是基本HTTP身份验证,如下所示:

   TRIM_API_URL = 'http://api.tr.im/api'
   response = urllib2.urlopen('%s/trim_simple?url=%s&username=%s&password=%s'
                              % (TRIM_API_URL,
                                 url_to_trim,
                                 USERNAME,
                                 PASSWORD))
   url = response.read().strip()
Run Code Online (Sandbox Code Playgroud)

...然后不仅url有效,而且它记录在我的tr.im帐户中.(虽然response.code仍然是200.) …

python authentication http

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

错误:在Ionic 3中找不到org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25

在为Android构建Ionic 3应用程序时,突然出现以下错误。

Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25
Run Code Online (Sandbox Code Playgroud)

我们已经从Android Studio中的一个解决方案在这里,但我在我的build.gradle没有变化用下面的代码后,我仍然得到错误。

buildscript {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

allprojects {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}
Run Code Online (Sandbox Code Playgroud)

更新Cordova并添加上述解决方案后,我的build.gradle文件如下所示。

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

    dependencies {
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        classpath 'com.android.tools.build:gradle:3.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url …
Run Code Online (Sandbox Code Playgroud)

android cordova build.gradle ionic-framework ionic3

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

Facebook API错误191

我正在尝试将我的项目与Facebook整合.我一开始就采取了婴儿步骤,只是尝试登录,获得Facebook会话,并获得一些用户数据.我正在本地开发它,所以我的Facebook应用程序设置是:

site URL: http://127.0.0.1:8888/mySite/
Run Code Online (Sandbox Code Playgroud)

画布URL与上面相同.我没有指定网站域名.

但是,当我点击登录按钮时,我收到一个错误:

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application.
Run Code Online (Sandbox Code Playgroud)

目前我还没有编写任何服务器端代码来处理重定向等.我所做的就是根据Facebook网站上的教程添加JavaScript SDK .

我做错了什么?这显然与我的Facebook应用程序设置有关,但我看不到什么!

facebook facebook-javascript-sdk

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

如何设计可扩展的软件(插件架构)?

我需要一些资源来讨论如何将软件设计为可扩展的,即让其他人可以编写添加功能的附加组件/插件.

您有什么推荐的吗?那里有讨论这个主题的书吗?
我更喜欢那些简短而重要的东西; 一点理论和一堆具体的例子.

我不是针对特定语言,我希望能够理解核心思想,以便我可以用任何语言实现它.

出于同样的原因,我宁愿不使用其他人构建的框架(除非框架不是非常高级,即不会隐藏太多),目前我只想教育自己主题和实验以各种方式实现它.此外,框架通常假定用户对该主题的了解.

UPDATE

我不是在询问OOP或者是否允许我的类被继承.我所说的是设计一个将部署在系统上的应用程序,以便在部署之后可以通过第三方附加组件进行扩展.

例如,Notepad ++有一个插件架构,您可以将.dll文件放在plugins文件夹中,并为不存在的应用程序添加功能,例如颜色选择或片段插入,或许多其他内容(广泛的功能).

language-agnostic resources plugins extensibility

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

如何将HTML5画布文本设置为粗体和/或斜体?

我正以一种非常直接的方式将文本打印到画布上:

var ctx = canvas.getContext('2d');
ctx.font = "10pt Courier";
ctx.fillText("Hello World", 100, 100);
Run Code Online (Sandbox Code Playgroud)

但是,如何将文本更改为粗体,斜体或两者?有什么建议可以解决这个简单的例子

javascript html5 typography canvas

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

我如何获取网页的内容并将其保存到字符串变量中

如何使用ASP.NET获取网页内容?我需要编写一个程序来获取网页的HTML并将其存储到字符串变量中.

c# asp.net screen-scraping

70
推荐指数
5
解决办法
16万
查看次数

如何在png图像中找到像素的alpha通道透明度值?

我有一个具有alpha通道透明度的图像.

我想用CSS中的RGBA值重新创建相同的背景颜色,但我找不到背景像素的真实颜色及其alpha通道值.如果我使用任何颜色选择器,它将给我与其背景颜色相关的像素颜色的绝对值.

你知道找出像素的真正alpha通道值的技巧吗?

css photoshop transparency image

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

React 测试库在 React 18 中给出 ReactDOM.render 的控制台错误

更新到 React 18 或从 创建新的 React 18 应用程序后create-react-app,当我运行该yarn test命令时,它会为任何测试中使用的console.error每个方法发出警告,如下所示:render

console.error
警告:ReactDOM.render 在 React 18 中不再支持。请改用 createRoot。在您切换到新 API 之前,您的应用程序的行为就像运行 React 17 一样。了解更多信息:https ://reactjs.org/link/switch-to-createroot

如屏幕截图所示: 反应测试库警告

由于 React 测试库目前似乎不支持 React 18 方法。

unit-testing reactjs jestjs react-dom react-testing-library

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

我真的需要检查jQuery是否存在元素吗?

我最近有一个关于如何正确检查jQuery是否存在元素的问题.我从这里找到答案:

https://learn.jquery.com/using-jquery-core/faq/how-do-i-test-whether-an-element-exists/

综上所述:

if ( $( "#myDiv" ).length ) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

我工作的一个人说正确的检查方法应该是:

if ($( "#myDiv" ) && $( "#myDiv" ).length ) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

有关系吗?我的意思是从性能或延迟方面来说,它们是否表现相同?

也:

$( "#myDiv" ).show();
$( "#myDiv" ).hide();
$( "#myDiv" ).val('');
Run Code Online (Sandbox Code Playgroud)

在这些类型的jQuery函数中,似乎不需要if检查,因为如果#myDiv不存在则不会引发错误,对吗?

对于它的价值,我使用的是jQuery 1.6.4.

javascript jquery

62
推荐指数
3
解决办法
8906
查看次数

尝试在 AWS 中创建存储桶 ACL 时出现错误 AccessControlListNotSupported

最近我尝试aws_s3_bucket_acl使用 Terraform 部署资源,并收到错误:

\n
\n

错误:为存储桶名称创建 S3 存储桶 ACL 时出错:AccessControlListNotSupported:存储桶不允许 ACL \xe2\x94\x82 状态代码:400

\n
\n

我不明白为什么这不会创建。不过,我检查了 AWS 文档 [ 1 2 ],看起来他们最近在 2023 年 4 月进行了更新,默认禁用了 ACL。

\n

amazon-s3 amazon-web-services terraform

59
推荐指数
3
解决办法
4万
查看次数