C# 如何在xamarin表单中使用refit显示listview

C# 如何在xamarin表单中使用refit显示listview,c#,web-services,xamarin,refit,C#,Web Services,Xamarin,Refit,我尝试用来自web服务的json数据以xamarin形式显示listview 这是我的数据: {"isSuccess":true,"resultMessage":"","data":[{"password":"MnwPzyBdAZBrDV6xMHoIzg","userid":4,"name":"Budi","tanggal_lahir":"09/03/1996 00:00:00","email":"budi123@gmail.com","tanggal_join":"01/20/2020 15:

我尝试用来自web服务的json数据以xamarin形式显示listview

这是我的数据:

{"isSuccess":true,"resultMessage":"","data":[{"password":"MnwPzyBdAZBrDV6xMHoIzg","userid":4,"name":"Budi","tanggal_lahir":"09/03/1996 00:00:00","email":"budi123@gmail.com","tanggal_join":"01/20/2020 15:08:07","username":"budi001"},
{"password":"PFjQJkorLvR+ilWUWdq1Yw","userid":5,"name":"Hermawan","tanggal_lahir":"09/07/1996 00:00:00","email":"mawan@gmail.com","tanggal_join":"01/23/2020 15:08:07","username":"mawan123"}]}
这是我的编码web服务:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void getAllUsers()
    {
        DbAccessConnection conn = getActiveConnection();

        if (conn == null)
            return;

        try
        {
            beginTransaction(conn);

            MimoUser users = new MimoUser(conn);
            DataSet ds = new DataSet();
            string tbName = "MimoUser";

            users.getAll(ds, tbName);
            DataTable dtTbl = ds.Tables[tbName];

            List<Dictionary<String, object>> lsOfDtTbl = Tools.convertDataTableToList(dtTbl);

            commitTransaction(conn);
            Responder.writeResponse(true, "", lsOfDtTbl );
            //commitTransaction(conn);
        }
        catch (Exception ex)
        {
            rollbackTransaction(conn);
            Responder.writeResponse(false, ex.Message);
        }
    }
DataReturnResult.cs

public class DataReturnResult
{
    public Boolean isSuccess;
    public String resultMessage;
    public object data;

    public static DataReturnResult createReturnResult(Boolean isSuccess,String resultMessage,object data = null)
    {
        DataReturnResult result = new DataReturnResult();
        result.isSuccess = isSuccess;
        result.resultMessage = resultMessage;
        result.data = data;
        return result;
    }


    public static String createReturnResultJson(Boolean isSuccess,String resultMessage,object data = null)
    {
        DataReturnResult result = createReturnResult(isSuccess, resultMessage, data);
        return JsonConvert.SerializeObject(result);
    }
}
MainPage.xaml

<ContentPage.Content>
    <StackLayout
        Padding="20">

        <Button 
            Text="Get User"
            Clicked="OnUserClicked"
            BackgroundColor="Black"
            TextColor="White"
            HorizontalOptions="FillAndExpand"/>

        <ListView
            x:Name="ListUser">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell
                        Text="{Binding name}"/>
                </DataTemplate>
            </ListView.ItemTemplate>

        </ListView>


    </StackLayout>
</ContentPage.Content>
我尝试使用
任务getAllUsers()
更改代码IUserApi.cs,从Get User收到相同的错误消息


您能帮助我如何修复它吗?

您能在设备的web浏览器中打开该URL并得到200而不是500的回复吗?是的,我可以从手机上打开我的URL,但当我单击method getAllUsers时,会显示消息“测试表单仅适用于本地机器的请求”当我从笔记本电脑上打开我的url并单击方法getAllUsers(我得到了我的数据)时,情况就不同了。您需要配置web服务器以允许来自远程客户端的请求
public class DataReturnResult
{
    public Boolean isSuccess;
    public String resultMessage;
    public object data;

    public static DataReturnResult createReturnResult(Boolean isSuccess,String resultMessage,object data = null)
    {
        DataReturnResult result = new DataReturnResult();
        result.isSuccess = isSuccess;
        result.resultMessage = resultMessage;
        result.data = data;
        return result;
    }


    public static String createReturnResultJson(Boolean isSuccess,String resultMessage,object data = null)
    {
        DataReturnResult result = createReturnResult(isSuccess, resultMessage, data);
        return JsonConvert.SerializeObject(result);
    }
}
<ContentPage.Content>
    <StackLayout
        Padding="20">

        <Button 
            Text="Get User"
            Clicked="OnUserClicked"
            BackgroundColor="Black"
            TextColor="White"
            HorizontalOptions="FillAndExpand"/>

        <ListView
            x:Name="ListUser">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell
                        Text="{Binding name}"/>
                </DataTemplate>
            </ListView.ItemTemplate>

        </ListView>


    </StackLayout>
</ContentPage.Content>
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    async void OnUserClicked(object sender,EventArgs ex)
    {

        var apiResponse = RestService.For<IUserApi>("http://192.168.0.188/appwebservice/appwebservice.asmx");
        var listUser = await apiResponse.getAllUsers();

        ListUser.ItemsSource = listUser;
    }

}
Refit.ApiException: 'Response status code does not indicate success: 500 (Internal Server Error).'