คำถามติดแท็ก asp.net-web-api

ASP.NET Web API เป็นเฟรมเวิร์กสำหรับสร้างบริการ HTTP สำหรับลูกค้าเช่นเบราว์เซอร์และอุปกรณ์มือถือ มันขึ้นอยู่กับ Microsoft .NET Framework และเป็นตัวเลือกที่เหมาะสำหรับการสร้างบริการ RESTful

9
คำขอใส่ API ของเว็บสร้างข้อผิดพลาด Http 405 Method Not Allowed
นี่คือการเรียกใช้PUTเมธอดบน Web API ของฉัน - บรรทัดที่สามในเมธอด (ฉันกำลังเรียก Web API จากส่วนหน้า ASP.NET MVC): client.BaseAddressคือhttp://localhost/CallCOPAPI/. นี่คือcontactUri: นี่คือcontactUri.PathAndQuery: และสุดท้ายนี่คือคำตอบ 405 ของฉัน: นี่คือ WebApi.config ในโครงการ Web API ของฉัน: public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Routes.MapHttpRoute( name: "DefaultApiGet", routeTemplate: "api/{controller}/{action}/{regionId}", defaults: new …

6
ใช้ WebAPI หรือ MVC เพื่อส่งคืน JSON ใน ASP.NET
ฉันกำลังสร้างแอพพลิเคชั่น ASP.NET MVC ที่ใช้งานสคริปต์ไคลเอนต์มากมันจะใช้ JSON และ jQuery เพื่อจัดการ DOM ความเข้าใจของฉันคือทั้งWeb API ControllerและMVC Controllerสามารถส่งคืน JSON เมื่อพิจารณาสถานการณ์ของฉันฉันควรใช้Web API ControllerหรือMVC Controllerหรือไม่

8
การระบุรูปแบบ DateTime แบบกำหนดเองเมื่อทำการจัดลำดับด้วย Json.Net
ฉันกำลังพัฒนา API เพื่อเปิดเผยข้อมูลบางอย่างโดยใช้ ASP.NET Web API ในหนึ่งใน API ลูกค้าต้องการให้เราเปิดเผยวันที่ในyyyy-MM-ddรูปแบบ ฉันไม่ต้องการเปลี่ยนการตั้งค่าส่วนกลาง (เช่นGlobalConfiguration.Configuration.Formatters.JsonFormatter) สำหรับสิ่งนั้นเนื่องจากมีความเฉพาะเจาะจงสำหรับลูกค้า และฉันจะพัฒนาสิ่งนั้นในโซลูชันสำหรับลูกค้าหลายราย หนึ่งในวิธีการแก้ปัญหาที่ฉันคิดได้ก็คือการสร้างกำหนดเองJsonConverterจากนั้นนำไปใช้กับคุณสมบัติที่ฉันต้องใช้ในการจัดรูปแบบที่กำหนดเอง เช่น class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get;set;} } แค่สงสัยว่ามีวิธีอื่นที่ง่ายกว่าในการทำเช่นนั้น

6
ฉันจะยูนิตทดสอบวิธีการดำเนินการ API ของเว็บเมื่อส่งคืน IHttpActionResult ได้อย่างไร
สมมติว่านี่เป็นวิธีการดำเนินการของฉัน public IHttpActionResult Get(int id) { var status = GetSomething(id); if (status) { return Ok(); } else { return NotFound(); } } การทดสอบจะเป็น var httpActionResult = controller.Get(1); ฉันจะตรวจสอบรหัสสถานะ http ของฉันหลังจากนี้ได้อย่างไร?

5
รับที่อยู่ IP ของโฮสต์ระยะไกล
ใน ASP.NET มีSystem.Web.HttpRequestclass ซึ่งมีServerVariablesคุณสมบัติที่สามารถให้ที่อยู่ IP จากREMOTE_ADDRมูลค่าทรัพย์สิน อย่างไรก็ตามฉันไม่สามารถหาวิธีที่คล้ายกันเพื่อรับที่อยู่ IP ของโฮสต์ระยะไกลจาก ASP.NET Web API ฉันจะรับที่อยู่ IP ของรีโมตโฮสต์ที่ร้องขอได้อย่างไร

15
JSONP พร้อม ASP.NET Web API
ฉันกำลังทำงานเกี่ยวกับการสร้างชุดบริการใหม่ใน ASP.MVC MVC 4 โดยใช้ Web API จนถึงตอนนี้มันเยี่ยมมาก ฉันได้สร้างบริการและทำให้มันใช้งานได้และตอนนี้ฉันกำลังพยายามใช้ JQuery ฉันสามารถเรียกคืนสตริง JSON โดยใช้ Fiddler ได้และดูเหมือนว่าจะโอเค แต่เนื่องจากบริการนี้มีอยู่ในไซต์อื่นพยายามโทรด้วย JQuery error ด้วย "Not Allowed" ดังนั้นนี่เป็นกรณีที่ฉันต้องใช้ JSONP อย่างชัดเจน ฉันรู้ว่า Web API นั้นใหม่ แต่ฉันหวังว่าจะมีใครบางคนช่วยฉันได้ ฉันจะโทรไปยังวิธี Web API โดยใช้ JSONP ได้อย่างไร

11
ฉันจะส่งพารามิเตอร์หลายตัวไปยัง ASP.Net Web API GET ได้อย่างไร
ฉันใช้. Net MVC4 Web API เพื่อ (หวังว่า) จะใช้ api RESTful ฉันต้องผ่านพารามิเตอร์สองสามตัวไปยังระบบและให้มันดำเนินการบางอย่างจากนั้นส่งคืนรายการของวัตถุเป็นผลลัพธ์ โดยเฉพาะฉันกำลังผ่านสองวันและกลับมาบันทึกที่อยู่ระหว่างพวกเขา ฉันยังติดตามระเบียนที่ส่งคืนเพื่อให้การโทรที่ตามมาไม่ได้รับการประมวลผลอีกครั้งในระบบ ฉันได้พิจารณาแนวทางบางประการแล้ว: การทำให้พารามิเตอร์เป็นอนุกรมในสตริง JSON เดียวและแยกออกจากกันใน API http://forums.asp.net/t/1807316.aspx/1 ส่งผ่านพารามิเตอร์ในสตริงการสืบค้น วิธีที่ดีที่สุดในการส่งพารามิเตอร์การค้นหาหลายรายการไปยัง api พักผ่อนคืออะไร การกำหนด params ในเส้นทาง: api / controller / date1 / date2 การใช้ POST ที่ให้ฉันผ่านวัตถุโดยมีพารามิเตอร์ ค้นคว้า ODATA ตั้งแต่ Web API (ปัจจุบัน) รองรับ ฉันยังไม่ได้ทำสิ่งนี้มากนักดังนั้นฉันจึงไม่คุ้นเคย ดูเหมือนว่าวิธีปฏิบัติ REST ที่เหมาะสมจะระบุเมื่อมีการดึงข้อมูลคุณควรใช้ GET อย่างไรก็ตาม GET …

4
ความแตกต่างระหว่างโครงการ MVC 5 และโครงการ Web Api
ฉันยังใหม่กับASP.NET MVCและWeb APIและพยายามรับข้อมูลพื้นฐาน AFAIK เรามีโครงการแม่แบบใน VS 2013 ชื่อเป็นMVC, และWeb APIBoth of them together ฉันได้อ่านบทช่วยสอนและเรียนรู้ว่าเราสามารถสร้าง API ได้โดยใช้ MVC เพียงอย่างเดียวและกับเทมเพลต Web API แล้วอะไรคือความแตกต่างระหว่างสิ่งเหล่านี้ตามสถาปัตยกรรมและการใช้งาน ?

23
Java เสร็จสิ้นด้วยค่าออกที่ไม่ใช่ศูนย์ 2 - Android Gradle
ฉันได้รับข้อผิดพลาดนี้ในการเรียกใช้แอป Android ของฉัน (ฉันทำความสะอาดแล้วสร้างขึ้น แต่ข้อผิดพลาดยังคงอยู่) ซิงค์: ตกลง สร้างโครงการ: ตกลง ทำความสะอาด: ตกลง เรียกใช้: ข้อผิดพลาด ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': app: dexDebug' .com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: กระบวนการ 'คำสั่ง' C: \ Program Files \ Java \ jdk1.7.0 _25 \ bin \ java.exe '' เสร็จสิ้นด้วยค่าออกที่ไม่ใช่ศูนย์ 2 ไฟล์ gradle ของฉัน: apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" …

2
คุณใช้วิธีการมอบหมายการดำเนินการ async อย่างไร
ข้อมูลพื้นฐานเล็กน้อย ฉันกำลังเรียนรู้ Web API stack และฉันกำลังพยายามห่อหุ้มข้อมูลทั้งหมดในรูปแบบของออบเจ็กต์ "Result" ด้วยพารามิเตอร์เช่น Success และ ErrorCodes อย่างไรก็ตามวิธีการที่แตกต่างกันจะให้ผลลัพธ์และรหัสข้อผิดพลาดที่แตกต่างกัน แต่โดยทั่วไปวัตถุผลลัพธ์จะถูกสร้างอินสแตนซ์ในลักษณะเดียวกัน เพื่อประหยัดเวลาและเรียนรู้เพิ่มเติมเกี่ยวกับความสามารถ async / await ใน C # ฉันพยายามที่จะรวมเนื้อหาวิธีการทั้งหมดของการกระทำเว็บ api ของฉันในตัวแทนการกระทำแบบอะซิงโครนัส แต่ติดอยู่ในอุปสรรคเล็กน้อย ... ให้ชั้นเรียนต่อไปนี้: public class Result { public bool Success { get; set; } public List<int> ErrorCodes{ get; set; } } public async Task<Result> GetResultAsync() { return …

8
ดาวน์โหลดไฟล์จากวิธี ASP.NET Web API โดยใช้ AngularJS
ในโครงการ Angular JS ของฉันฉันมี<a>แท็กจุดยึดซึ่งเมื่อคลิกจะGETส่งคำขอHTTP ไปยังเมธอด WebAPI ที่ส่งคืนไฟล์ ตอนนี้ฉันต้องการให้ดาวน์โหลดไฟล์ไปยังผู้ใช้เมื่อคำขอสำเร็จ ฉันจะทำอย่างไร แท็กจุดยึด: <a href="#" ng-click="getthefile()">Download img</a> AngularJS: $scope.getthefile = function () { $http({ method: 'GET', cache: false, url: $scope.appPath + 'CourseRegConfirm/getfile', headers: { 'Content-Type': 'application/json; charset=utf-8' } }).success(function (data, status) { console.log(data); // Displays text data if the file is a text …

14
MVC web api: ไม่มีส่วนหัว 'Access-Control-Allow-Origin' อยู่ในทรัพยากรที่ร้องขอ
ฉันลองทุกอย่างที่เขียนในบทความนี้: http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-apiแต่ไม่ได้ผล ฉันพยายามดึงข้อมูลจาก webAPI2 (MVC5) เพื่อใช้ในโดเมนอื่นโดยใช้ angularJS ตัวควบคุมของฉันมีลักษณะดังนี้: namespace tapuzWebAPI.Controllers { [EnableCors(origins: "http://local.tapuz.co.il", headers: "*", methods: "*", SupportsCredentials = true)] [RoutePrefix("api/homepage")] public class HomePageController : ApiController { [HttpGet] [Route("GetMainItems")] //[ResponseType(typeof(Product))] public List<usp_MobileSelectTopSecondaryItemsByCategoryResult> GetMainItems() { HomePageDALcs dal = new HomePageDALcs(); //Three product added to display the data //HomePagePromotedItems.Value.Add(new HomePagePromotedItem.Value.FirstOrDefault((p) => p.ID …

11
หลายวิธี HttpPost ในตัวควบคุม Web API
ฉันกำลังเริ่มใช้โครงการ MVC4 Web API ฉันมีคอนโทรลเลอร์ที่มีหลายHttpPostวิธี คอนโทรลเลอร์มีลักษณะดังต่อไปนี้: ตัวควบคุม public class VTRoutingController : ApiController { [HttpPost] public MyResult Route(MyRequestTemplate routingRequestTemplate) { return null; } [HttpPost] public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate) { return null; } } ในที่นี้MyRequestTemplateแสดงถึงคลาสเทมเพลตที่รับผิดชอบในการจัดการ Json ที่มาจากการร้องขอ ข้อผิดพลาด: เมื่อฉันขอโดยใช้ Fiddler http://localhost:52370/api/VTRouting/TSPRouteหรือhttp://localhost:52370/api/VTRouting/Route ฉันได้รับข้อผิดพลาด: พบการดำเนินการหลายรายการที่ตรงกับคำขอ หากฉันลบวิธีใดวิธีหนึ่งข้างต้นก็ใช้ได้ดี Global.asax ฉันได้ลองแก้ไขตารางเส้นทางเริ่มต้นglobal.asaxแล้ว แต่ฉันยังคงได้รับข้อผิดพลาดฉันคิดว่าฉันมีปัญหาในการกำหนดเส้นทางใน global.asax นี่คือสิ่งที่ฉันทำใน global.asax public static …

6
มีวิธีบังคับให้ ASP.NET Web API ส่งคืนข้อความธรรมดาหรือไม่?
ฉันต้องการได้รับการตอบกลับเป็นข้อความธรรมดาจากตัวควบคุม ASP.NET Web API ฉันได้ลองทำตามคำขอAccept: text/plainแต่ดูเหมือนจะไม่ได้ผล นอกจากนี้คำขอยังอยู่ภายนอกและอยู่นอกเหนือการควบคุมของฉัน สิ่งที่ฉันจะทำได้คือเลียนแบบวิธี ASP.NET แบบเก่า: context.Response.ContentType = "text/plain"; context.Response.Write("some text); ความคิดใด ๆ ? แก้ไขวิธีแก้ปัญหา : จากคำตอบของ Aliostad ฉันได้เพิ่มตัวจัดรูปแบบข้อความWebAPIContribเริ่มต้นใน Application_Start: config.Formatters.Add(new PlainTextFormatter()); และคอนโทรลเลอร์ของฉันลงเอยด้วยสิ่งที่ชอบ: [HttpGet, HttpPost] public HttpResponseMessage GetPlainText() { return ControllerContext.Request.CreateResponse(HttpStatusCode.OK, "Test data", "text/plain"); }

6
วิธีคืนสตริงดิบด้วย ApiController
ฉันมี ApiController ที่ทำหน้าที่ XML / JSON แต่ฉันต้องการให้การดำเนินการอย่างใดอย่างหนึ่งของฉันส่งคืน HTML บริสุทธิ์ ฉันลองด้านล่าง แต่มันยังคงส่งคืน XML / JSON public string Get() { return "<strong>test</strong>"; } นี่คือผลตอบแทนข้างต้น: <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"><strong>test</strong></string> มีวิธีส่งคืนเฉพาะข้อความบริสุทธิ์ที่ไม่ใช้ Escape โดยไม่มีแท็ก XML โดยรอบหรือไม่ (อาจเป็นแอตทริบิวต์การดำเนินการส่งคืนประเภทอื่น)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.