2017-05-04 2 views
0

저는 Spring Boot 및 IntelliJ IDEA를 사용하여 REST API를 개발했습니다. 해당 API가 실행 중입니다. Postman &이 액세스 할 수 있으며 관련 JSON 응답을 제공합니다.C# Windows Form에서 REST API에 액세스 할 수 없습니다.

그런 다음 C# windows 폼 응용 프로그램에서 액세스하려고했습니다. 웹 참조로 추가하려고했습니다. 하지만 해당 버튼이 비활성화되었습니다. 내 코드의 문제점은 무엇입니까? 비주얼 스튜디오에 와서 8080/학생/안녕하세요 JSON 응답 : 나는 로컬 호스트로 URL을 제공하는 경우

@RestController 
@RequestMapping("/students") 
public class StudentController { 

@Autowired 
private StudentService studentService; 

@RequestMapping(value="/hello") 
String home() { 
    return "Hello World!"; 
} 

@RequestMapping(value="getAllStudents",method = RequestMethod.GET) 
public Collection<Student> getAllStudents(){ 
    return studentService.getAllStudents(); 
} 

@RequestMapping(value = "/{id}",method = RequestMethod.GET) 
public Student getStudentById(@PathVariable("id") int id) 
{ 
    return studentService.getStudentById(id); 
} 


@RequestMapping(value = "/{id}" , method = RequestMethod.DELETE) 
public void deleteStudentById(@PathVariable("id") int id) 
{ 
studentService.removeStudentById(id); 
} 

. 그러나 웹 참조로 추가 될 수는 없습니다.

enter image description here

이에 대한 해결책은 무엇인가

...?

+0

요의 주요 문제 ur C# 코드는 Java 코드 –

+2

.NET에서 REST API를 전혀 사용하지는 않았지만 Visual Studio에서 '웹 참조'는 SOAP 웹 서비스와 함께 사용하도록되어 있다고 항상 생각했습니다. REST API를 사용하려면 'HttpClient'로 직접 빌드하거나 타사 라이브러리를 사용해야한다고 생각합니다. – fharreau

답변

1

Visual Studio의 웹 참조는 SOAP/ASMX 웹 서비스를위한 것입니다. @ fharreau가 HttpClient를 사용할 필요가 있다고 주석을 달았을 때 REST API를 호출하는 경우.

링크는 당신이 그것을 수행하는 방법을 보여줍니다하지만/후속 읽기 어려울 수 있습니다

https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client

이 그래서 대답은 SO에서 더 나은

https://stackoverflow.com/a/10928807/2309376

수 있습니다 "http://www.contoso.com/"을 URL "http://localhost:8080/students/hello"으로 대체해야합니다.

+0

감사합니다. @ 간단히 Ged. & fharreau하지만 .NET을 사용하여 웹 클라이언트 응용 프로그램에서 웹 서비스를 사용했습니다. netbeans에서 자바 웹 클라이언트에 웹 서비스를 추가하려고했습니다. 거기에 같은 문제가 있습니다. Netbeans는 "서비스 유형이 WSDL 또는 WADL인지 판단 할 수 없습니다." – Chamith

+0

@Chamith : WinForms 또는 웹 클라이언트를 사용하고 있습니까? 당신이 묻는 것이 불분명합니다. 어쨌든 WSDL은 SOAP 웹 서비스의 인터페이스 계약입니다. 나는 WADL에 대해 들어 본 적이 없다. (다만 그것에 대해 들여다 보면 IMHO이다. 그것은 수차이지만 그 점은 아니다.) 나는 Java 전문가가 아니지만 Java 코드에서 그런 파일을 생성하지 않는다고 가정한다. 이것이 NetBeans에서 열 수없는 이유입니다. – fharreau

관련 문제