हमने कई बार हमारे रेल सर्वर को अद्यतन पुट अनुरोध भेजने की कोशिश की है और हम 404 प्राप्त करते रहेंगे "जिस पृष्ठ को आप ढूंढ रहे थे वह मौजूद नहीं है"क्या आईओएस डिवाइस रेल एप्स को पुट अनुरोध भेज सकते हैं?
हमारी अपडेट विधि बहुत सरल (व्यावहारिक रूप से सामान्य रेल) है।
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
अंत
जब मैं अद्यतन विधि का परीक्षण करने के कमांड लाइन से कर्ल चलाने के लिए, यह ठीक काम करता है। लेकिन, जब मैं उद्देश्य-सी में एक ही तरीके का प्रयास करता हूं, तो यह हमेशा 404 त्रुटि में परिणाम देता है।
तो मेरा सवाल यह है: क्या आईओएस डिवाइस NSRLConnection का उपयोग कर सर्वरों को PUT अनुरोध भेज सकते हैं या यह लागू नहीं किया गया है?
अद्यतन ::
इस डेटाबेस
NSString *dataString = @"user[first_name]=bob";
NSData *postBodyData = [NSData dataWithBytes: [dataString UTF8String] length:[dataString length]];
NSString *urlString = [NSString stringWithFormat:@"example.com/users/1.json"];
NSURL *fullURL = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:fullURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
[request setHTTPMethod: @"PUT"];
[request setHTTPBody:postBodyData];
self.todoConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
receivedData = [NSMutableData data];
इस डेटाबेस
NSString *urlString = [NSString stringWithFormat:@"example.com/users/1.json?user[first_name]=bob"];
NSURL *fullURL = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:fullURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
[request setHTTPMethod: @"PUT"];
self.todoConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
receivedData = [NSMutableData data];
पोस्ट करना रूबी कोड जब आपका प्रश्न आईओएस समर्थन के बारे में है शायद आप कोई अच्छा नहीं करेंगे। यदि आप इसके बजाय अपना उद्देश्य-सी कोड पोस्ट करते हैं, तो हम देख सकते हैं और देख सकते हैं कि आप HTTP विधि को सही तरीके से सेट कर रहे हैं (जैसा डेविड वी नीचे दिखाया गया है)। – glorifiedHacker
हाँ, इसके बारे में खेद है। मैं रेल के अंत लिख रहा हूं, और एक अलग डेवलपर उद्देश्य-सी लिख रहा था और मुझे उसके कोड तक पहुंच नहीं थी। यह अभी खत्म हो गया है –
मुझे आश्चर्य है कि क्या इस तथ्य के साथ कुछ करना है कि आप '[' और ']' वर्णों से बच नहीं रहे हैं। स्ट्रिंग @ "उपयोगकर्ता% 5Bfirst_name% 5D = ब्रायन" से व्युत्पन्न डेटा के साथ HTTP बॉडी को सेट करने का प्रयास करें। – glorifiedHacker