2017-05-06 155 views
0

我很难从我的测试.net应用程序添加一个记录到airtable。我能够正确读取数据,但我不确定是否正确格式化数据或者不向头添加内容。以下是一个示例:如何将airtable curl POST命令转换为c#或vb.net?

Dim wHeader As WebHeaderCollection = New WebHeaderCollection() 

    wHeader.Clear() 
    wHeader.Add("Authorization: Bearer keynNkH2CywXXXXX") 

    Dim sUrl As String = "https://api.airtable.com/v0/appGajjD5tTMmyCC5/Logs" 

    Dim wRequest As HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(sUrl), HttpWebRequest) 

    wRequest.ContentType = "application/json" ' I don't know what your content type is 
    wRequest.Headers = wHeader 

    wRequest.Method = "POST" 
    wRequest.Accept = "*/*" 
    Dim myData = "{""fields"": {""AppName"": ""test2"", ""Action"": ""hlkj"", ""User"": ""lhkjnjn""}}" 

    wRequest.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myData), 0, System.Text.Encoding.UTF8.GetBytes(myData).Count) 

    Dim wResponse As HttpWebResponse = DirectCast(wRequest.GetResponse(), HttpWebResponse) 

    Dim sResponse As String = "" 

    Using srRead As New StreamReader(wResponse.GetResponseStream()) 
     sResponse = srRead.ReadToEnd() 
    End Using 
    MessageBox.Show(sResponse) 

我一直收到的错误是“422 Unprocessable Entity”。

回答

-1

我遇到同样的问题。编码类似于你的东西,得到这个错误。然后试图将这个:https://github.com/ngocnicholas/airtable.net 合并到我的项目中,但得到相同的错误。 在你想尝试纳入该客户到你的项目的情况下,这是如何将它从VB拨打:

Protected Async Sub t2Async() 
     Dim myFields As Fields = New Fields() 
     myFields.AddField("Name", "Some value") 
     Dim myAirtableBase As AirtableBase = New AirtableBase(appKey, baseId) 
     Dim myTask As Task(Of AirtableCreateUpdateReplaceRecordResponse) = myAirtableBase.CreateRecord("Clients", myFields, False) 
     Dim response = Await myTask 
    End Sub 

但正如我所说,它产生同样的错误。让我知道,如果你想出点什么......