在过去的几天里,我一直在阅读有关 Go 的内容,并且我不断回顾的一个概念是上下文。
我想我理解创建这样一个结构背后的动机。我不明白的是在传入 HTTP 请求中使用上下文时的特定用例。
假设我们有一个追随者httpHandlerFunc。在该处理程序内部,我们调用一个需要传递上下文的函数。我经常看到这个解决方案
func myHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.WithValue(context.Background(), "request", r)
otherFunc(ctx)
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么我们不直接从请求中传递上下文,就像这样
func myHandler(w http.ResponseWriter, r *http.Request) {
otherFunc(r.Context())
}
Run Code Online (Sandbox Code Playgroud)
既然我们希望上下文流过我们的程序,那么传递请求的上下文不是更有意义吗?我认为创建后台上下文是我们只想在根父级中执行的操作,就像init()函数一样。
我有一个带有方法的控制器
public function foo(FooRequest $request)
{
return "OK"
}
Run Code Online (Sandbox Code Playgroud)
FooRequest 扩展了 FormRequest 并具有
public function rules()
{
return [
'id' => ['required', 'numeric', 'exists:partners,id'],
'manager_id' => ['nullable', 'numeric'],
];
}
Run Code Online (Sandbox Code Playgroud)
如果我输入无效 ID,它会将我重定向到 /。如何禁用此重定向并显示 json 异常?
json 异常已经实现(类似于 JException(code, 异常, 错误),我只需要了解如何摆脱重定向并调用此 JException
我在控制器中有 3 种不同的方法来获取请求。
- 第一个通过 id 和路径变量获取用户:
@GetMapping(path="/{id}")
public ResponseEntity<UserInfoDTO> getUserById(@PathVariable Long id)
Run Code Online (Sandbox Code Playgroud)
第二个根据username参数获取用户:
public ResponseEntity<UserInfoDTO> getUserByUsername(@RequestParam String username)
Run Code Online (Sandbox Code Playgroud)
最后还有另一个让所有用户都获得的
public ResponseEntity<List<UserInfoDTO>> getAllUsers()
Run Code Online (Sandbox Code Playgroud)
@GetMapping第二种和第三种方法应该是什么?
例如@GetMapping对于所有用户和@GetMapping(path="/")按用户名的用户?
管他呢...
谢谢。
我打算通过请求调用 aws lambda 函数中的第三方 api。但它显示超时错误。我将 lambda 函数时间设置为 30 秒,当我使用邮递员调用该 api 时,它会在 5 秒内发送响应(错误)。我认为请求或者axios无法将请求发送到外部api或者无法接收响应。谁能帮我?我的代码:
request.post({url:url2, json:true, body:body, headers: {
'ACCESS_TIMESTAMP': timestamp,
'Content-Type': 'application/json'
} }, (error, response, body) => {
console.log("------------------I am here----------------------")
callback(null, error)
})
Run Code Online (Sandbox Code Playgroud)
当我使用 axios 时,代码如下:
let jsonbody = JSON.stringify(body)
axios.post(url2, jsonbody, {headers: {
'ACCESS_TIMESTAMP': timestamp,
'Content-Type': 'application/json'
}})
.then(res => {
callback(null, res.data)
})
.catch(err => {
callback(null, err)
})
Run Code Online (Sandbox Code Playgroud)
我想得到 res 或 err 的结果,但他们不行动。
我在使用 Whatsapp Cloud API(已于 5 月 22 日向公众发布)时遇到问题。我在“设置开发人员资产和平台访问”部分中完成了入门中的所有操作,这样我就能够在 Ubuntu 20.04.4 LTS 中使用以下命令发送模板hello world :
curl -i -X POST \
https://graph.facebook.com/v14.0/my_number/messages \
-H 'Authorization: Bearer my_token' \
-H 'Content-Type: application/json' \
-d '{ "messaging_product": "whatsapp",
"to": "my_reciever",
"type": "template",
"template": { "name": "hello_world", "language": { "code": "en_US" } }
}'
Run Code Online (Sandbox Code Playgroud)
或者使用Python 3.10和requests 2.27.1:
from requests import Session
import json
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
BASE_URL = "https://graph.facebook.com/"
API_VERSION = "v13.0/"
SENDER = …Run Code Online (Sandbox Code Playgroud) 如果我有一个从我的表单请求我的数据的循环:
for ($i=0;$i < count($_POST['checkbx']);$i++) {
// calculate the file from the checkbx
$filename = $_POST['checkbx'][$i];
$clearfilename = substr($filename, strrpos ($filename, "/") + 1);
echo "'".$filename."',";
}
Run Code Online (Sandbox Code Playgroud)
如何将其添加到下面的示例数组中?:
$files = array(
'files.extension',
'files.extension',
);
Run Code Online (Sandbox Code Playgroud) 在ASP.net MVC中:
我应该如何/可以将表格数据(从视图)传递给控制器?
这就是我的方向:
以下是我的代码片段:
控制器/索引回发功能:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(int? page, CaseFilter caseFilter)
{
const int pageSize = 10;
var cases = caseRepo.FindAllCases();
var paginatedCases = new PaginatedList<Case>(cases, page ?? 0, pageSize);
return View(new CaseIndexViewModel(paginatedCases, caseFilter));
}
Run Code Online (Sandbox Code Playgroud)
过滤类:
public class CaseFilter
{
int iVolume_id = 0,
iSubject_id = 0;
public CaseFilter() {
}
public int Volume_id { get { return iVolume_id; } set { iVolume_id = value; } }
public int Subject_id { get …Run Code Online (Sandbox Code Playgroud) 我是C#和.Net的新手,我来自Java背景.我试图了解.NET应用程序的方式,并没有太多运气.
我想构建一个应用程序来处理请求URL和写回复图像的响应.在Web应用程序字段中仅使用了Java servlet后,我处理了一些关于处理应用程序请求端的良好资源和/或解释.
如何处理请求?和什么对象?什么是循环?页面如何在这周围发挥作用?
这些都是基本的广泛问题,所以如果有人知道所有资源全部覆盖它们,请告诉我.到目前为止我发现的信息有点不是整体情况.
我有一个"在野外"的形式,它采用了许多不同的变量 - 可能会也可能不会填充.
try:
app_version = request.REQUEST["appVersion"]
except:
app_version = ''
try:
app_name = request.REQUEST["appName"]
except:
app_name = ''
try:
app_code_name = request.REQUEST["appCodeName"]
except:
app_code_name = ''
Run Code Online (Sandbox Code Playgroud)
有没有更严格的方法来实现这一目标?
我一直在使用Request.Form来获取所有代码.如果我需要查询字符串,我也明确地打了它.它出现在代码审查中,我应该使用Params集合.
我认为这是一个最佳实践,直接点击适当的集合.我正在寻找对一方或另一方的一些强化.
request ×10
api ×2
asp.net ×2
c# ×2
php ×2
arrays ×1
asp.net-mvc ×1
aws-lambda ×1
axios ×1
curl ×1
django ×1
forms ×1
get-mapping ×1
go ×1
http ×1
java ×1
laravel ×1
python ×1
response ×1
spring-boot ×1
validation ×1
whatsapp ×1