从作业 API 创建作业时出错
Getting error while creating Job from Jobs API
我正在将数据库中的作业配置作为字符串传递并作为字符串存储在 .Net Web 中 API as
var result = _context.Output.FromSqlRaw(StoredJson).ToList().FirstOrDefault().Details;
现在我使用 RestSharp 库在 .Net 中创建请求
var client = new RestClient(".....");
var request = new RestRequest("/api/2.0/jobs/create", Method.Post);
string Auth = "......";
request.AddParameter("application/json", result, ParameterType.RequestBody);
request.AddParameter("Authorization", "Bearer " + Auth, ParameterType.HttpHeader);
var response = await client.ExecuteAsync(request);
return(response.content)
我的 Json 看起来像这样
{
"name": "LoadData_test",
"new_cluster": {
"spark_version": "7.6.x-scala2.12",
"init_scripts": [
{
"dbfs": {
"destination": "....."
}
}
],
"instance_pool_id": ".......",
"azure_attributes": {
"spot_bid_max_price": -1
},
"autoscale": {
"min_workers": 2,
"max_workers": 5
}
},
"libraries": [
{
"maven": {
"coordinates": "......"
}
}
],
"timeout_seconds": 0,
"notebook_task": {
"notebook_path": "......",
"revision_timestamp": 0
},
"max_concurrent_runs": 1
}
而且我想当我将这个 JSON 传递给 request.AddParameters 时,它被当作 text/plain。但我希望它是 JSON.
我想,我已经做对了所有事情,但是在发送请求时仍然出现错误
{"error_code":"INVALID_PARAMETER_VALUE","message":"Job settings must be specified."}
有人可以帮我吗?
我使用“...”是因为内容有效。
我猜你得到了一些代码生成器生成的代码,比如 Postman。它不适用于最新的 RestSharp,因为构建请求的方式已损坏。
documentation 完整概述了 RestSharp API 以构建正确的请求,我强烈建议查看它。
具体来说,您需要替换这一行:
request.AddParameter("application/json", result, ParameterType.RequestBody);
和
request.AddStringBody(result, DataFormat.Json);
我正在将数据库中的作业配置作为字符串传递并作为字符串存储在 .Net Web 中 API as
var result = _context.Output.FromSqlRaw(StoredJson).ToList().FirstOrDefault().Details;
现在我使用 RestSharp 库在 .Net 中创建请求
var client = new RestClient(".....");
var request = new RestRequest("/api/2.0/jobs/create", Method.Post);
string Auth = "......";
request.AddParameter("application/json", result, ParameterType.RequestBody);
request.AddParameter("Authorization", "Bearer " + Auth, ParameterType.HttpHeader);
var response = await client.ExecuteAsync(request);
return(response.content)
我的 Json 看起来像这样
{
"name": "LoadData_test",
"new_cluster": {
"spark_version": "7.6.x-scala2.12",
"init_scripts": [
{
"dbfs": {
"destination": "....."
}
}
],
"instance_pool_id": ".......",
"azure_attributes": {
"spot_bid_max_price": -1
},
"autoscale": {
"min_workers": 2,
"max_workers": 5
}
},
"libraries": [
{
"maven": {
"coordinates": "......"
}
}
],
"timeout_seconds": 0,
"notebook_task": {
"notebook_path": "......",
"revision_timestamp": 0
},
"max_concurrent_runs": 1
}
而且我想当我将这个 JSON 传递给 request.AddParameters 时,它被当作 text/plain。但我希望它是 JSON.
我想,我已经做对了所有事情,但是在发送请求时仍然出现错误
{"error_code":"INVALID_PARAMETER_VALUE","message":"Job settings must be specified."}
有人可以帮我吗?
我使用“...”是因为内容有效。
我猜你得到了一些代码生成器生成的代码,比如 Postman。它不适用于最新的 RestSharp,因为构建请求的方式已损坏。
documentation 完整概述了 RestSharp API 以构建正确的请求,我强烈建议查看它。
具体来说,您需要替换这一行:
request.AddParameter("application/json", result, ParameterType.RequestBody);
和
request.AddStringBody(result, DataFormat.Json);