我参与过“英雄之旅”教程,效果非常好。
我用C#做了一个Web api,作为一个小后端进行进一步测试。当我尝试加入所说的后端时,即使下一个标签位于同一条道路上,角度也会返回错误404,即使下一个标签位于完全相同的道路上也是如此。
这是错误:
*** Settings ***
Library class_test.py
*** Test Cases ***
python class test
[Tags] class
[Documentation] python class test
${ret}= test_jpg class_tag
Log ${ret.TAG}
Log ${ret.args}
我已经尝试登录电话的答案,我返回了一个" [object Object]" ,但我想这是错误信息本身。
An error occurred Object { _body: Object, status: 404, ok: false, statusText: "Not Found", headers: Object, type: null, url: "http://localhost:58225/api/Character" }
正如你所看到的,这里没有什么真正的原创。
/ api / Character返回包含我的字符列表的IEnumerable。
@Injectable()
export class CharacterService{
private charactersUrl = 'http://localhost:58225/api/Character';
constructor(private http:Http){}
getCharacters(): Promise<Character[]>{
alert("Getting Characters");
var my_data = this.http.get(this.charactersUrl)
.toPromise()
.then(response => response.json().data)
console.log("Resultat de l'appel = "+my_data);
return this.http.get(this.charactersUrl)
.toPromise()
.then( (response => response.json().data as Character[]) )
.catch(this.handleError);
}
我真的不知道我应该如何进一步测试?我正在阅读承诺和观察,看看我是否错过了什么,但这是我能想到的最简单的例子:/
编辑:
我已经通过以下方式更改了json API的响应:How do I get ASP.NET Web API to return JSON instead of XML using Chrome?。
当我直接浏览它时,API会立即返回:
public IEnumerable<string> GetAll()
{
List<Character> myCharacs = repo.Get().ToList();
List<String> myJsonCharacs = new List<string>();
foreach (var charac in myCharacs)
{
var cur = jsonConverter.Serialize(charac);
myJsonCharacs.Add(cur);
}
return myJsonCharacs;
}
没有区别。 (这是答案的一个例子,它实际上更长)
此外,由于答案是路径的404,我怀疑问题与答案的格式无关,而是与角度配置有关。我怎么能检查这个?
编辑:我的对象结构之间的区别是否会导致404错误?如果来自服务器的json字符的字段数多于angular2中定义的json字符,那会发生什么?
谢谢
答案 0 :(得分:0)
private charactersUrl = 'http://localhost:58225/api/character';
您的服务器应该仅响应JSON字符串
似乎没有data
属性,所以请按照以下方式使用:
.then( (response => response.json() as Character[]) )
public string GetAll()
{
List<Character> myCharacs = repo.Get().ToArray();
return jsonConverter.Serialize(myCharacs);
}
public IEnumerable<Character> GetAll()
{
List<Character> myCharacs = repo.Get().ToArray();
return myCharacs;
}
答案 1 :(得分:0)
一位朋友终于找到了答案:
删除内存数据服务参考。那件事阻止了http请求。
我知道有不同的错误,但至少我可以访问API。