我有一个Python Flask应用程序,该条目文件在应用程序上配置了一个记录器,如下所示:
app = Flask(__name__)
handler = logging.StreamHandler(sys.stdout)
app.logger.addHandler(handler)
app.logger.setLevel(logging.DEBUG)
Run Code Online (Sandbox Code Playgroud)
然后我做了一堆日志记录
app.logger.debug("Log Message")
哪个工作正常.但是,我有一些API函数,如:
@app.route('/api/my-stuff', methods=['GET'])
def get_my_stuff():
db_manager = get_manager()
query = create_query(request.args)
service = Service(db_manager, query)
app.logger.debug("Req: {}".format(request.url))
Run Code Online (Sandbox Code Playgroud)
我想知道的是如何在该Service模块/ python类中进行日志记录.我必须将应用程序传递给它吗?这似乎是一个不好的做法,但我不知道如何从主Flask文件外部获取app.logger的句柄...
我有以下代码:
const App = () => {
return (
<Provider store={store}>
<PersistGate persistor={persistor} loading={<Text>Loading!</Text>}>
<ConnectedRootComponent />
</PersistGate>
</Provider>
);
};
export default App;
Run Code Online (Sandbox Code Playgroud)
它使用redux-persist来补充状态,在此之前,它将显示加载属性中的内容.我有一个Jest测试(只是默认的一个带有反应原生的开箱即用):
it('renders without crashing', () => {
const rendered = renderer.create(<App />).toJSON();
console.log("Rendering: " + JSON.stringify(rendered));
expect(rendered).toBeTruthy();
});
Run Code Online (Sandbox Code Playgroud)
但是虽然测试通过,但我发现仍然发生的动作,persist/PERSIST以及persist/REHYDRATE测试中打印到控制台的值(渲染输出)是:
{
"type": "Text",
"props": {
"accessible": true,
"allowFontScaling": true,
"ellipsizeMode": "tail"
},
"children": ["Loading!"]
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是等到redux-persist完成水合,然后检查渲染值.我怎样才能做到这一点?
我正在尝试将字符串转换为LocalDateTime对象.
@Test
public void testDateFormat() {
String date = "20171205014657111";
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
LocalDateTime dt = LocalDateTime.parse(date, formatter);
}
Run Code Online (Sandbox Code Playgroud)
我希望这个测试能够通过.
我收到以下错误:
java.time.format.DateTimeParseException:无法在索引0处解析文本'20171205014657111'
我正在尝试使用 Python requests 库发出 API POST 请求。我正在传递一个Authorization标头,但是当我尝试调试时,我可以看到标头正在被删除。我不知道是怎么回事。
这是我的代码:
access_token = get_access_token()
bearer_token = base64.b64encode(bytes("'Bearer {}'".format(access_token)), 'utf-8')
headers = {'Content-Type': 'application/json', 'Authorization': bearer_token}
data = '{"FirstName" : "Jane", "LastName" : "Smith"}'
response = requests.post('https://myserver.com/endpoint', headers=headers, data=data)
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,我Authorization在请求参数中手动设置了标头,但它缺少实际请求的标头:
{'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.4.3 CPython/2.7.9 Linux/4.1.19-v7+'}。
另外一条信息是,如果我将 POST 请求更改为 GET 请求,则Authorization标头会正常通过!
为什么这个库会丢弃 POST 请求的标头,我该如何让它工作?
使用请求库的 v2.4.3 和 Python 2.7.9
python http http-headers python-requests authorization-header
我的 Java 服务中有一个 POST 端点,需要 protobuf 3 有效负载。该服务由发送 protobuf 有效负载的其他服务使用。我想进行一些调试并通过curl命令将 protobuf 有效负载发送到服务,但是,我不知道如何构建这样的有效负载,因为它是二进制协议。