我正在尝试使用pycurl更改JIRA中的受让人.我的代码正在等待****HTTP/1.1 100继续****.我究竟做错了什么?谢谢你的帮助.我在下面附上了我的代码片段.另外,我不想使用JIRA Python库.
def assign(self, key, name):
data = json.dumps({"fields":{"assignee":{"name":name}}})
c= pycurl.Curl()
c.setopt(pycurl.VERBOSE, 1)
c.setopt(pycurl.URL, "http://xxx/rest/api/2/issue/"+ key )
c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json'])
c.setopt(pycurl.USERPWD, "****")
c.setopt(pycurl.PUT, 1)
c.setopt(pycurl.POSTFIELDS,data)
c.perform()
Run Code Online (Sandbox Code Playgroud) 当尝试使用 auth0 发出 PUT 请求时,我不断遇到 404“用户未找到”错误。
我正在尝试更新用户,并使用他们的文档告诉我使用的确切端点进行此 API 调用。
当从他们的文档中拨打电话时(他们有一个内置测试),我发送的正文一切正常,并且我收到了 200 成功消息。
当我尝试从我的应用程序进行相同的调用时,我不断收到 404 用户未找到错误。
但是,当我使用相同的端点user_id从我的应用程序获取时,一切正常(证明我的 cliendID 配置正确)。
为什么会失败?
var updateAuthUser = function(){
var request = {
"user_metadata": {
"springboardID": 100055
}
}
var update = $http.put('https://app36591925.auth0.com/api/v2/users/auth0%7C5606b3c4b0c70b49698612fc', request);
update.then(function(response) {
console.log("update success", response);
}, function(response) {
console.log("update failure", response);
});
return update;
}
Run Code Online (Sandbox Code Playgroud)
工作 GET 请求:
var getAuthUser = function(){
$http.get('https://app36591925.auth0.com/api/v2/users/auth0|5606b3c4b0c70b49698612fc')
.then(function(response){
console.log("response", response);
var deferred = $q.defer();
deferred.resolve(response);
return deferred.promise;
});
}
Run Code Online (Sandbox Code Playgroud) 我的get和postAPI 正在工作,但由于某种原因,我app.put的没有。
当我在PostMan 中打localhost:3001/contacts/1aPUT时,我什至看不到我简单的 console.log:
app.put('/api/contacts:id', (req, res) => {
console.log('req.params.id', req.params.id);
res.json(contact);
});
Run Code Online (Sandbox Code Playgroud)
app.put('/api/contacts:id', (req, res) => {
console.log('req.params.id', req.params.id);
res.json(contact);
});
Run Code Online (Sandbox Code Playgroud)
// Requires ////////////////////////////////////////////////////////////////////
const express = require('express');
const app = express();
const bodyParser = require('body-parser'); // req.body
const cors = require('cors');
const R = require('ramda');
// Variables ///////////////////////////////////////////////////////////////////
const hostname = 'localhost';
const port = 3001;
let contacts = require('./data');
// …Run Code Online (Sandbox Code Playgroud) 我有一个代码,undefined每当我尝试将结果提取到变量中时都会产生结果
var data;
fetch('./js/samplejson.json')
.then((res) => res.json())
.then(output => {
var data = output;
}
)
console.log(data);
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到结果
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
内部数据变量
我有使用实体框架的 c# WEB API - 我试图通过我的角度前端发出放置请求以模拟“签入”功能,但请求未通过。
这是我的 Web api 方法
[HttpPut("checkin/{id}")]
[AuthorizeRoles(Role.Administrator, Role.User)]
public async Task<IActionResult> CheckIn(int id)
{
var reservation = await context.Reservations.FindAsync(id);
var username = User.Identity.Name;
if (reservation == null)
return NotFound();
// Ensure user is checking-in their own reservation and its not already checked-in
if (reservation.UserName == username && reservation.CheckInDate == null)
{
reservation.CheckInDate = DateTime.Now;
var count = await context.SaveChangesAsync();
if (count < 1)
return StatusCode((int)HttpStatusCode.InternalServerError);
}
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
这是我的两个 .ts 文件,其中正在发起请求 - 注意:在第二种方法中,我决定手动传递 ID …
我一直在尝试使用 dart http 包通过 flutter 框架发送http put请求。这是我的 json 字符串
var jsonMap = {
'status': '1',
'time': new DateTime.now().toIso8601String(),
'teamMemId': '7',
'empId': "953280086v",
'comId': 2.toString(),
'description': "j new attendence",
'effDate': date.toIso8601String()
};
Run Code Online (Sandbox Code Playgroud)
和http请求方法
String jsonStr = jsonEncode(jsonMap);
print(jsonMap);
http.put(Uri.encodeFull(url), body: jsonStr , headers: { "Accept" : "application/json"}).then((result) {
print(result.statusCode);
print(result.body);
});
Run Code Online (Sandbox Code Playgroud)
错误是node.js 文件没有捕获json 字符串,它只显示一个空对象。然而,当我与邮递员一起测试时,效果很好。
在 Django PUT 请求中,当我更新每周位置和小时数的值时,PUT 请求返回完全相同的值并且没有更新任何内容。
下面是我的代码,
网址
url(
r'^api/availability', views.AvailabilityAPIView.as_view(),name='api_availability'
)
Run Code Online (Sandbox Code Playgroud)
楷模
class Availability(models.Model):
# Skill model which contains trainer's skill details
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
locations = models.CharField(max_length=2000)
hours_per_week = models.IntegerField(default=0)
def __str__(self):
return self.locations + "|" + str(self.hours_per_week)
Run Code Online (Sandbox Code Playgroud)
序列化器
class AvailabilitySerializer(serializers.ModelSerializer):
class Meta:
model = Availability
fields = ['user', 'locations', 'hours_per_week']
Run Code Online (Sandbox Code Playgroud)
意见
class AvailabilityAPIView(APIView):
authentication_classes = (CsrfExemptSessionAuthentication, BasicAuthentication)
def get(self, request):
availability = Availability.objects.all()
serializer = AvailabilitySerializer(availability, many=True)
return Response(serializer.data)
def put(self, request):
serializer = AvailabilitySerializer(request.user, data=request.data, …Run Code Online (Sandbox Code Playgroud) 我尝试使用 ASP.NET Core 标签助手创建一个像这样的简单 HTML 表单:
<form asp-action="RemoveScheduledTenancyDeletion" method="put" asp-route-tenancyId="@Model.Tenancy.TenancyId">
<div class="form-group">
<input type="submit" value="Remove sheduled tenancy deletion" class="btn btn-default" />
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
在TenancyController里面有一个简单的动作:
[HttpPut]
public async Task<IActionResult> RemoveScheduledTenancyDeletion(Guid tenancyId)
{
//some logic here
return RedirectToAction(nameof(List));
}
Run Code Online (Sandbox Code Playgroud)
似乎以某种方式将整个请求转化为HttpGet动作。任何想法可能是错误的?
超出范围,我有一个单独的 REST API,其中定义了此类操作,HttpPut并且它可以与 Angular 和其他与 API 通信的客户端应用程序正常工作,因此我看不出有任何理由不应该将其HttpPut用作在 ASP.NET Core MVC 应用程序中很好。我错过了什么吗?干杯
我想用JQuery调用Spring REST WebService.
我的控制器中有两种方法:
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public @ResponseBody User getUser(@PathVariable long id, Model model){
return new User("TestUser");
}
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void updateUser(@PathVariable long id, @Valid User user){
user.getName();
}
Run Code Online (Sandbox Code Playgroud)
User类看起来像这样:
public class User {
private String name;
public User(){};
public User(String name){this.name = name;}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
};
Run Code Online (Sandbox Code Playgroud)
}
现在,当我调用http://localhost:8080/demo/user/2结果时,{"name":"TestUser"}就像预期的那样.
但是在尝试修改资源时,我尝试这样做:
$.ajax({
url: "http://localhost:8080/demo/user/2",
dataType: "json",
data: '{"name":"NewTestUser"}',
type: "PUT",
success: function(){alert('success');}
});
Run Code Online (Sandbox Code Playgroud)
我可以在Debugmode中看到调用了正确的方法(updateUser),但User对象的实例变量名始终为null.谁能告诉我我做错了什么?谢谢!
我正进入(状态
错误405:不允许方法
MessageEnd.java:
package com.example.wordcount;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/jersey")
public class MessageEnd {
@GET
@Path("/getvalue/{word}")
@Produces(MediaType.TEXT_PLAIN)
public Response sayHello(@PathParam("word") String word){
String output = " Count of word " + word;
return Response.status(200).entity(output).build();
}
@PUT
@Path("/sendvalue/{msg}")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public Response sendMsg(@PathParam("msg") String msg){
String output = "Received message= " + msg;
return Response.status(200).entity(output).build();
}
}
Run Code Online (Sandbox Code Playgroud)
仅供参考,@GET工作正常.
我正在使用以下URI:
http://localhost:8080/message/jersey/sendvalue/hi
Run Code Online (Sandbox Code Playgroud)